0

I want to format numbers using JavaScript.

For example:
input n < 1000
n=1 => one
n=2 => two 
n=3 => three
Tran Tai
  • 3
  • 1

2 Answers2

0

You can use a library to do that called number-to-words

import { toWords } from 'number-to-words';


console.log(toWords(13)); // => “thirteen”
 
// Decimal numbers:
console.log(toWords(1.2))
// Integer Numbers:
console.log(toWords(1))// => “one”

Live example: https://stackblitz.com/edit/js-4rj4iw?file=index.js

MarkWriteCodes
  • 135
  • 1
  • 10
0

If you prefer it without a Libary, you can do something like:

var num = "zero one two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen sixteen seventeen eighteen nineteen".split(" ");
var tens = "twenty thirty forty fifty sixty seventy eighty ninety".split(" ");

function number2words(n){
    if (n < 20) return num[n];
    var digit = n%10;
    if (n < 100) return tens[~~(n/10)-2] + (digit? "-" + num[digit]: "");
    if (n < 1000) return num[~~(n/100)] +" hundred" + (n%100 == 0? "": " and " + number2words(n%100));
    return number2words(~~(n/1000)) + " thousand" + (n%1000 != 0? " " + number2words(n%1000): "");
}

console.log(number2words(12))

(found here: Transform numbers to words in lakh / crore system)