Преобразуване на числа в думи с помощта на JavaScript

Много програмиране включва изчисления с числа и можете лесно да форматирате числа за показване, като добавите запетаи, десетични знаци, отрицателни знаци и други подходящи символи в зависимост от вида на числото.

Но не винаги представяте резултатите си като част от математическо уравнение. Мрежата за общия потребител е повече за думи, отколкото за числа, така че понякога число, показано като число, не е подходящо.

В този случай се нуждаете от еквивалента на числото с думи, а не с цифри. Тук можете да се сблъскате с трудности. Как да преобразувате числовите резултати от изчисленията си, когато имате нужда от числото, показано с думи?

Ако искате да можете да извършите тези преобразувания на вашия сайт, ще ви трябва JavaScript код, който може да извърши преобразуването вместо вас. Най-простият начин да направите това е да използвате код По-долу; просто изберете кода и го копирайте във файл, наречен toword.js.

// Преобразуване на числа в думи
// авторски права 25 юли 2006 г., от Стивън Чапман http://javascript.about.com

instagram viewer

// е разрешено използването на този Javascript на вашата уеб страница
// при условие че целият код (включително това известие за авторски права) е
// използва се точно както е показано (можете да промените системата за номериране, ако желаете)

// Американска система за номериране
var th = ['', 'хиляда', 'милион', 'милиард', 'трилион'];
// декомментирайте този ред за английска система с номера
// var th = ['', 'хиляда', 'милион', 'милиард', 'милиард'];

var dg = ['нула', 'един', 'два', 'три', 'четири',
"Пет", "шест", "седем", "осем", "девет"]; var tn =
['десет', 'единадесет', 'дванадесет', 'тринадесет', 'четиринадесет', 'петнадесет', 'шестнадесет',
"Седемнадесет", "осемнадесет", "деветнадесет"]; var tw = ['двадесет', 'тридесет', 'четиридесет', 'петдесет',
"Шестдесет", "седемдесет", "осемдесет", "деветдесет"]; функция toWords (s) {s = s.toString (); s =
s.replace (/ [[,] / g, ''); ако (s! = parseFloat (s)) се върне „not a number“; var x =
s.indexOf ( '.'); ако (x == -1) x = s.length; ако (x> 15) върнете „твърде голям“; var n =
s.split ( ''); var str = ''; var sk = 0; за (var i = 0; i ((x-i)% 3 == 2) {if (n [i] == '1') {str + = tn [Номер (n [i + 1])] + ''; и ++; SK = 1;}
иначе ако (n [i]! = 0) {str + = tw [n [i] -2] + ''; sk = 1;}} if if (n [i]! = 0) {str + =
dg [n [i]] + ''; if ((x-i)% 3 == 0) str + = 'сто'; 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 + =
'точка '; за (var i = x + 1; istr.replace (/ \ s + / g, '');}

Последната стъпка е да извикате скрипта, за да извършите преобразуването в думи за вас. За да получите число, преобразувано в думи, просто трябва да се обадите на функцията, която го предава, числото, което искате да преобразувате и съответните думи ще бъдат върнати.

Обърнете внимание, че тази функция може да преобразува числа, големи колкото 999,999,999,999,999, в думи и с толкова десетични знаци, колкото искате. Ако се опитате да конвертирате a номер по-голям от това, той ще се върне "твърде голям".

Числата, запетаите, интервалите и един период за десетичната запетая са единствените приемливи символи, които могат да бъдат използвани за преобразуваното число. Ако съдържа нещо извън тези знаци, то ще върне „не число“.