# Q1017 How can I convert "1234.56" to "One thousand two hundred thirty-four and fifty-six" cents?

You are here: irt.org | FAQ | JavaScript | Number | Q1017 [ previous next ]

Try the following:

```<html>

<script language="JavaScript"><!--
function makeArray0() {
for (i = 0; i<makeArray0.arguments.length; i++)
this[i] = makeArray0.arguments[i];
}

var numbers = new makeArray0('','one','two','three','four','five','six','seven','eight','nine','ten','eleven','twelve','thirteen','fourteen','fifthteen','sixteen','seventeen','eighteen','nineteen');

var numbers10 = new makeArray0('','ten','twenty','thirty','fourty','fifty','sixty','seventy','eighty','ninety');

function chequeAmount(input) {
var dollars = Math.floor(input);
var cents = Math.round((input*100 - dollars*100));

var thousands = (dollars - dollars % 1000) / 1000;
dollars -= thousands * 1000;
var hundreds = (dollars - dollars % 100) / 100;
dollars -= hundreds * 100;

var output = '';

output += (thousands > 0 ? fN(thousands) + ' thousand ' : '') +
(hundreds > 0 ? fN(hundreds) + ' hundred ' : '') +
(dollars > 0 ? fN(dollars) + ' ' : '') +
((thousands > 0 || hundreds > 0 || dollars > 0) ? 'dollars ' : '') +
((Math.floor(input) > 0 && cents > 0) ? 'and ' : '') +
(cents > 0 ? fN(cents) + ' cents' : '');

return output.substring(0,1).toUpperCase() + output.substring(1);
}

function fN(i) {
if (i<20) return numbers[i];
var tens = (i - i % 10) / 10, units = i - (i - i % 10);
return numbers10[tens] + ((tens > 0 && units > 0) ? '-' : '') + numbers[units];
}
//--></script>