Konvertera siffror till ord med JavaScript

click fraud protection

Mycket av programmering innebär beräkningar med siffror, och du kan enkelt formatera siffror för visning genom att lägga till komma, decimaler, negativa tecken och andra lämpliga tecken beroende på vilken typ av nummer det är.

Men du presenterar inte alltid dina resultat som en del av en matematisk ekvation. Webben för den allmänna användaren handlar mer om ord än om siffror, så ibland är ett nummer som visas som ett nummer inte lämpligt.

I det här fallet måste du motsvara antalet i ord, inte i siffror. Det är här du kan stöta på svårigheter. Hur konverterar du de numeriska resultaten för dina beräkningar när du behöver antalet som visas i ord?

Om du vill kunna göra dessa omvandlingar på din webbplats behöver du en JavaScript-kod som kan göra omvandlingen åt dig. Det enklaste sättet att göra detta är att använda koda Nedan; välj bara koden och kopiera den till en fil som heter toword.js.

// Konvertera siffror till ord
// copyright 25 juli 2006, av Stephen Chapman http://javascript.about.com
// tillstånd att använda detta Javascript på din webbsida ges

instagram viewer

// förutsatt att all kod (inklusive detta meddelande om upphovsrätt) är
// används exakt som visas (du kan ändra numreringssystemet om du vill)

// Amerikanskt numreringssystem
var th = ['"," tusen "," miljoner "," miljarder "," biljoner "];
// avdela denna rad för engelska nummersystemet
// var th = ['', 'tusen', 'miljoner', 'milliard', 'miljarder'];

var dg = ['noll', 'en', 'två', 'tre', 'fyra',
'Fem', 'sex', 'sju', 'åtta', 'nio']; var tn =
["tio", "elva", "tolv", "tretton", "fjorton", "femton", "sexton",
'Sjutton', 'arton', 'nitton']; var tw = ['tjugo', 'trettio', 'fyrtio', 'femtio',
'Sextio', 'sjuttio', 'åttio', 'nittio']; funktion till AdWords (s) {s = s.toString (); s =
s.replace (/ [\,] / g, ''); om (s! = parseFloat (s)) returnerar 'inte ett tal'; var x =
s.indexOf ( ''); if (x == -1) x = s.length; om (x> 15) returnerar 'för stort'; var n =
s.split ( ''); var str = ''; var sk = 0; för (var i = 0; i ((x-i)% 3 == 2) {if (n [i] == '1') {str + = tn [Antal (n [i + 1])] + ''; i ++; sk = 1;}
annars om (n [i]! = 0) {str + = tw [n [i] -2] + ''; sk = 1;}} annars om (n [i]! = 0) {str + =
dg [n [i]] + ''; if ((x-i)% 3 == 0) str + = 'hundra'; 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"; för (var i = x + 1; istr.replace (/ \ s + / g, '');}

Det sista steget är att ringa skriptet för att utföra konverteringen till ord åt dig. För att få ett nummer konverterat till ord behöver du bara ringa funktionen som passerar det numret du vill konvertera och motsvarande ord kommer att returneras.

Observera att denna funktion kan konvertera siffror så stora som 999,999,999,999,999 till ord och med så många decimaler som du vill. Om du försöker konvertera en siffra större än att det kommer att returnera "för stort."

Siffror, komma, mellanslag och en enda period för decimalpunkten är de enda acceptabla tecknen som kan användas för det antal som konverteras. Om det innehåller något utöver dessa tecken, kommer det att returnera "inte ett nummer."

instagram story viewer