Převod čísel na slova pomocí JavaScriptu

Hodně programování zahrnuje výpočty s čísly a můžete snadno formátovat čísla pro zobrazení přidáním čárky, desetinných míst, negativních znaků a dalších vhodných znaků v závislosti na druhu čísla.

Ne vždy však prezentujete své výsledky jako součást matematické rovnice. Web pro běžného uživatele je více o slovech než o číslech, takže někdy číslo zobrazené jako číslo není vhodné.

V tomto případě potřebujete ekvivalent počtu slov, nikoli číslic. To je místo, kde můžete narazit na potíže. Jak převést číselné výsledky svých výpočtů, když potřebujete číslo zobrazené slovy?

Pokud chcete být schopni tyto konverze na svém webu provést, budete potřebovat kód JavaScript, který dokáže konverzi provést za vás. Nejjednodušší způsob, jak toho dosáhnout, je použít kód níže; stačí vybrat kód a zkopírovat jej do souboru s názvem toword.js.

// Převod čísel na slova
// copyright 25. července 2006, Stephen Chapman http://javascript.about.com
// je povoleno používat tento Javascript na vaší webové stránce
// za předpokladu, že veškerý kód (včetně tohoto oznámení o autorských právech) je

instagram viewer

// používá se přesně podle obrázku (pokud si přejete, můžete změnit systém číslování)

// Americký číslovací systém
var th = ['', 'tisíc', 'milion', 'miliarda', 'bilion'];
// odkomentujte tento řádek pro anglický systém čísel
// var th = ['', 'tisíc', 'milion', 'miliarda', 'miliarda'];

var dg = ['zero', 'one', 'two', 'three', 'four',
„pět“, „šest“, „sedm“, „osm“, „devět“]; var tn =
['deset', 'jedenáct', 'dvanáct', 'třináct', 'čtrnáct', 'patnáct', 'šestnáct',
'sedmnáct', 'osmnáct', 'devatenáct']; var tw = ['dvacet', 'třicet', 'čtyřicet', 'padesát',
'šedesát', 'sedmdesát', 'osmdesát', 'devadesát']; function toWords (s) {s = s.toString (); s =
s.replace (/ [\,] / g, ''); if (s! = parseFloat (s)) vrátí 'ne číslo'; var x =
s.indexOf ('.'); jestliže (x == -1) x = s.length; pokud (x> 15) návrat 'příliš velký'; var n =
s.split (''); var str = ''; var sk = 0; pro (var i = 0; i ((x-i)% 3 == 2) {if (n [i] == '1') {str + = tn [číslo (n [i + 1])] + ''; i ++; sk = 1;}
jinak if (n [i]! = 0) {str + = tw [n [i] -2] + ''; sk = 1;}} jinde, pokud (n [i]! = 0) {str + =
dg [n [i]] + ''; if ((x-i)% 3 == 0) str + = 'set'; sk = 1;} if ((x-i)% 3 == 1) {if (sk)
str + = th [(x-i-1) / 3] + ''; sk = 0;}} if (x! = s.length) {var y = s.length; str + =
'směřovat '; pro (var i = x + 1; istr.replace (/ \ s + / g, '');}

Posledním krokem je zavolat skript, aby pro vás provedl převod na slova. Chcete-li získat číslo převedené na slova, stačí zavolat funkci předávající číslo, které chcete převést, a odpovídající slova budou vrácena.

Tato funkce umí převádět čísla velká až 999,999,999,999,999 na slova as tolika desetinnými místy, kolik chcete. Pokud se pokusíte převést číslo větší, než že se vrátí „příliš velký“.

Čísla, čárky, mezery a jedna tečka za desetinnou čárkou jsou jediné přijatelné znaky, které lze použít pro převáděné číslo. Pokud obsahuje něco mimo tyto znaky, vrátí „ne číslo“.