Number to Words Converter
Convert any number into English words instantly. Supports up to trillions. Perfect for cheques, assignments and official documents.
Advertisement
Advertisement
const ones=['','one','two','three','four','five','six','seven','eight','nine','ten','eleven','twelve','thirteen','fourteen','fifteen','sixteen','seventeen','eighteen','nineteen'];
const tens=['','','twenty','thirty','forty','fifty','sixty','seventy','eighty','ninety'];
function numToWords(n){
if(n===0)return'zero';
if(n<0)return'negative '+numToWords(-n);
if(n<20)return ones[n];
if(n<100)return tens[Math.floor(n/10)]+(n%10?' '+ones[n%10]:'');
if(n<1000)return ones[Math.floor(n/100)]+' hundred'+(n%100?' '+numToWords(n%100):'');
if(n<1000000)return numToWords(Math.floor(n/1000))+' thousand'+(n%1000?' '+numToWords(n%1000):'');
if(n<1000000000)return numToWords(Math.floor(n/1000000))+' million'+(n%1000000?' '+numToWords(n%1000000):'');
if(n<1000000000000)return numToWords(Math.floor(n/1000000000))+' billion'+(n%1000000000?' '+numToWords(n%1000000000):'');
return numToWords(Math.floor(n/1000000000000))+' trillion'+(n%1000000000000?' '+numToWords(n%1000000000000):'');
}
function convert(val){
if(val===''||val===null){document.getElementById('result').style.display='none';return;}
const n=parseInt(val);
if(isNaN(n)||n>999999999999999){document.getElementById('result').style.display='none';return;}
// Handle decimals
const parts=val.toString().split('.');
let words=numToWords(Math.abs(parseInt(parts[0])));
if(parts[1]&&parts[1]!==''){
const dec=parseInt(parts[1]);
if(dec>0)words+=' point '+parts[1].split('').map(d=>ones[+d]).join(' ');
}
if(parseFloat(val)<0)words='negative '+words;
document.getElementById('r-words').textContent=words;
document.getElementById('result').style.display='block';
}
function copyResult(){
const text=document.getElementById('r-words').textContent;
navigator.clipboard.writeText(text).then(()=>{
const btn=document.getElementById('copy-btn');
btn.textContent='Copied!';btn.style.background='#D1FAE5';btn.style.borderColor='#6EE7B7';
setTimeout(()=>{btn.textContent='Copy text';btn.style.background='';btn.style.borderColor='';},2000);
});
}
document.addEventListener('DOMContentLoaded',()=>{document.getElementById('related-grid').innerHTML=TOOLS.filter(t=>t.category==='writing'&&t.slug!=='number-to-words').slice(0,4).map(buildToolCard).join('');});