Konwersja liczb na słowa za pomocą JavaScript

Wiele programowanie obejmuje obliczenia za pomocą liczb i można łatwo formatować liczby do wyświetlenia, dodając przecinki, miejsca po przecinku, znaki ujemne i inne odpowiednie znaki, w zależności od rodzaju liczby.

Ale nie zawsze prezentujesz swoje wyniki jako część równania matematycznego. Internet dla ogólnego użytkownika dotyczy bardziej słów niż liczb, więc czasami liczba wyświetlana jako liczba jest nieodpowiednia.

W takim przypadku potrzebujesz odpowiednika liczby w słowach, a nie w liczbach. Tutaj możesz napotkać trudności. Jak przekonwertować wyniki liczbowe w obliczeniach, gdy potrzebna jest liczba wyświetlana w słowach?

Jeśli chcesz mieć możliwość konwersji w swojej witrynie, potrzebujesz kodu JavaScript, który może wykonać konwersję za Ciebie. Najprostszym sposobem na to jest użycie kod poniżej; wystarczy wybrać kod i skopiować go do pliku o nazwie toword.js.

// Konwertuj liczby na słowa
// prawa autorskie 25 lipca 2006, autor: Stephen Chapman http://javascript.about.com
// udzielono zgody na używanie tego Javascript na twojej stronie internetowej

instagram viewer

// pod warunkiem, że cały kod (w tym niniejsza informacja o prawach autorskich) jest
// używane dokładnie tak, jak pokazano (możesz zmienić system numeracji, jeśli chcesz)

// Amerykański system numeracji
var th = [”,„ tysiąc ”,„ milion ”,„ miliard ”,„ bilion ”];
// odkomentuj tę linię dla English Number System
// var th = [”,„ tysiąc ”,„ milion ”,„ miliard ”,„ miliard ”];

var dg = [„zero”, „one”, „two”, „three”, „four”,
„pięć”, „sześć”, „siedem”, „osiem”, „dziewięć”]; var tn =
[„dziesięć”, „jedenaście”, „dwanaście”, „trzynaście”, „czternaście”, „piętnaście”, „szesnaście”,
„siedemnaście”, „osiemnaście”, „dziewiętnaście”]; var tw = [„dwadzieścia”, „trzydzieści”, „czterdzieści”, „pięćdziesiąt”,
„sześćdziesiąt”, „siedemdziesiąt”, „osiemdziesiąt”, „dziewięćdziesiąt”]; function toWords (s) {s = s.toString (); s =
s.replace (/ [\,] / g, ''); if (s! = parseFloat (s)) zwraca „nie liczbę”; var x =
s.indexOf ('.'); if (x == -1) x = długość s; if (x> 15) zwraca „za duży”; var n =
s.split (''); var str = ''; var sk = 0; dla (var i = 0; i ((x-i)% 3 == 2) {if (n [i] == '1') {str + = tn [Number (n [i + 1])] + ''; i ++; sk = 1;}
else if (n [i]! = 0) {str + = tw [n [i] -2] + ''; sk = 1;}} else if (n [i]! = 0) {str + =
dg [n [i]] + ''; if ((x-i)% 3 == 0) str + = 'sto'; 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 + =
„punkt”; dla (var i = x + 1; istr.replace (/ \ s + / g, '');}

Ostatnim krokiem jest wywołanie skryptu w celu wykonania konwersji na słowa. Aby przekonwertować liczbę na słowa, wystarczy wywołać funkcję, przekazując jej liczbę, którą chcesz przekonwertować, a odpowiednie słowa zostaną zwrócone.

Zauważ, że ta funkcja może konwertować liczby tak duże, jak 999,999,999,999,999 na słowa i z dowolną liczbą miejsc dziesiętnych. Jeśli spróbujesz przekonwertować plik numer większy niż to zwróci „zbyt duży”.

Liczby, przecinki, spacje i pojedynczy kropka dziesiętna są jedynymi akceptowalnymi znakami, których można użyć do konwersji liczby. Jeśli zawiera coś poza tymi znakami, zwróci „nie liczbę”.