4

I have to convert digit value into words in Javascript. Ex.: if have print 110 then result should be One Hundred ten.

Is there any buit-in function in javascript for this?

asgoth
  • 35,552
  • 12
  • 89
  • 98
Archna Rangrej
  • 664
  • 3
  • 14
  • 38
  • 2
    there is no such thing my friend, but you are free to create your own algorithm. – Mark Jan 28 '13 at 07:20
  • you have to write a simple function with switch case which parse the string value char by char and returns relavant word , also considering the position value of the digit – Hussain Akhtar Wahid 'Ghouri' Jan 28 '13 at 07:21
  • Removed angularjs tag since this is not related to angularjs – asgoth Jan 28 '13 at 12:53
  • I have done as you asked in your request. Please be careful in the future, as we normally do not ever reverse these. Thanks! – Andrew Barber May 23 '13 at 12:33
  • 1
    There is no known built-in function. Check the following: [Numbers to Words](http://javascript.about.com/library/bltoword.htm) [Convert Amount in numbers to words in JavaScript](http://kuppalli.wordpress.com/2008/02/23/convert-amount-in-numbers-to-words/) – StarPinkER Jan 28 '13 at 07:21
  • Thanks for your help. - Andrew Barber – Archna Rangrej May 23 '13 at 12:45
  • 2
    see here http://stackoverflow.com/questions/14766951/convert-amount-into-words – PSR May 24 '13 at 04:36
  • There is no built-in function. refer the [link](http://kuppalli.wordpress.com/2008/02/23/convert-amount-in-numbers-to-words/) [StackOverFlow Reference](http://stackoverflow.com/questions/1774644/how-to-convert-numbers-to-words) – Amit May 24 '13 at 04:39

1 Answers1

0

Try this

<html>
<head>
<title>Number Converter</title>
<script type="text/javascript">
var a = ['', 'One', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven', 'Eight', 'Nine'];
var b = ['Hundred', 'Thousand', 'Lakh', 'Crore'];
var c_0 = ['Ten', 'Eleven', 'Twelve', 'Thirteen', 'Fourteen', 'Fifteen', 'Sixteen', 'Seventeen', 'Eighteen', 'Ninteen'];
var d   = ['Twenty', 'Thirty', 'Forty', 'Fifty', 'Sixty', 'Seventy', 'Eighty', 'Ninety'];

function convertNumToWord(number){
  var c, rm;
  c = 1;
  string = '';
  number == 0 && (string = 'Zero');
  while (number != 0) {
    switch (c) {
      case 1:
        rm = number % 100;
        pass(rm);
        number > 100 && number % 100 != 0 && display('And ');
        number = ~~(number / 100);
        break;
      case 2:
        rm = number % 10;
        if (rm != 0) {
          display(' ');
          display(b[0]);
          display(' ');
          pass(rm);
        }

        number = ~~(number / 10);
        break;
      case 3:
        rm = number % 100;
        if (rm != 0) {
          display(' ');
          display(b[1]);
          display(' ');
          pass(rm);
        }

        number = ~~(number / 100);
        break;
      case 4:
        rm = number % 100;
        if (rm != 0) {
          display(' ');
          display(b[2]);
          display(' ');
          pass(rm);
        }

        number = ~~(number / 100);
        break;
      case 5:
        rm = number % 100;
        if (rm != 0) {
          display(' ');
          display(b[3]);
          display(' ');
          pass(rm);
        }

        number = ~~(number / 100);
    }
    ++c;
  }
  return string;
}

function display(s){
  var t;
  t = string;
  string = s;
  string += t;
}

function pass(number){
  var q, rm;
  number < 10 && display(a[number]);
  number > 9 && number < 20 && display(c_0[number - 10]);
  if (number > 19) {
    rm = number % 10;
    if (rm == 0) {
      q = ~~(number / 10);
      display(d[q - 2]);
    }
     else {
      q = ~~(number / 10);
      display(a[rm]);
      display(' ');
      display(d[q - 2]);
    }
  }
}
</script>
</head>
<body>
<input type="text" id="number"><input type="submit" value="Convert" id="convert">
<div id="converted"></div>
</body>
<script>
document.getElementById("convert").onclick=function() {
  if(document.getElementById("number").value.length > 9) {
    document.getElementById("converted").innerHTML="Cannot convert more than nine digits";
    return;
  }
  convertedVal = convertNumToWord(parseInt(document.getElementById("number").value));
  document.getElementById("converted").innerHTML=convertedVal;
}
</script>
</html>
krishnakumarp
  • 8,967
  • 3
  • 49
  • 55