Hoe u cijfers in woorden omzet met JavaScript

Veel programmeren omvat berekeningen met getallen en u kunt getallen gemakkelijk opmaken voor weergave door komma's, decimalen, negatieve tekens en andere geschikte tekens toe te voegen, afhankelijk van het soort nummer dat het is.

Maar u presenteert uw resultaten niet altijd als onderdeel van een wiskundige vergelijking. Het web voor de algemene gebruiker gaat meer over woorden dan over cijfers, dus soms is een nummer dat als een nummer wordt weergegeven niet geschikt.

In dit geval hebt u het equivalent van het getal in woorden nodig, niet in cijfers. Hier kun je moeilijkheden tegenkomen. Hoe converteert u de numerieke resultaten van uw berekeningen wanneer u het getal in woorden nodig hebt?

Een getal omzetten in woorden is niet bepaald de meest voor de hand liggende taak, maar het kan worden gedaan met behulp van niet al te complexe JavaScript.

JavaScript om cijfers in woorden om te zetten

Als u deze conversies op uw site wilt kunnen uitvoeren, hebt u een JavaScript-code nodig die de conversie voor u kan uitvoeren. De eenvoudigste manier om dit te doen, is de onderstaande code te gebruiken; selecteer gewoon de code en kopieer deze naar een bestand met de naam toword.js.

// Converteer getallen naar woorden
// copyright 25 juli 2006, door Stephen Chapman http://javascript.about.com
// toestemming om deze Javascript op uw webpagina te gebruiken wordt verleend
// op voorwaarde dat alle code (inclusief deze copyrightkennisgeving) is
// precies gebruikt zoals getoond (u kunt het nummeringssysteem wijzigen als u dat wenst)

// Amerikaans nummeringssysteem
var th = [", 'duizend', 'miljoen', 'miljard', 'triljoen'];
// uncomment this line for English Number System
// var th = [", 'duizend', 'miljoen', 'miljard', 'miljard'];

var dg = ['zero', 'one', 'two', 'three', 'four',
'Vijf', 'zes', 'zeven', 'acht', 'negen']; var tn =
['tien', 'elf', 'twaalf', 'dertien', 'veertien', 'vijftien', 'zestien',
'Zeventien', 'achttien', 'negentien']; var tw = ['twintig', 'dertig', 'veertig', 'vijftig',
'Zestig', 'zeventig', 'tachtig', 'negentig']; functie toWords (s) s = s.toString (); s =
s.replace (/ [\,] / g, "); if (s! = parseFloat (s)) retourneer 'not a number'; var x =
s.indexOf ( ''); if (x == -1) x = s.lengte; if (x> 15) 'te groot' retourneren; var n =
s.split ("); var str ="; var sk = 0; voor (var i = 0; i < x; i++) if
((x-i)% 3 == 2) if (n [i] == '1') str + = tn [Number (n [i + 1])] + "; i ++; sk = 1;
anders if (n [i]! = 0) str + = tw [n [i] -2] + "; sk = 1; anders if (n [i]! = 0) str + =
dg [n [i]] + "; if ((x-i)% 3 == 0) str + = 'honderd'; 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 + =
'punt'; voor (var i = x + 1; istr.replace (/ \ s + / g, ");

Koppel het script vervolgens aan de kop van uw pagina met de volgende code:

var words = toWords (num);

De laatste stap is het script aan te roepen om de conversie naar woorden voor u uit te voeren. Om een ​​getal te converteren naar woorden, hoeft u alleen maar de functie die het doorgeeft het nummer dat u wilt converteren te bellen en de bijbehorende woorden worden geretourneerd.

Beperkingen van getallen tot woorden

Merk op dat deze functie getallen zo groot als 999.999.999.999.999 kan omzetten in woorden en met zoveel decimalen als u wilt. Als u een groter getal probeert te converteren, wordt er 'te groot' geretourneerd.

Nummers, komma's, spaties en een enkele punt voor de komma zijn de enige acceptabele tekens die kunnen worden gebruikt voor het getal dat wordt geconverteerd. Als het iets anders dan deze tekens bevat, retourneert het 'geen nummer'.

Negatieve getallen

Als u negatieve getallen van valutawaarden in woorden wilt omzetten, moet u die symbolen eerst uit het getal verwijderen en deze afzonderlijk in woorden omzetten.