Função em javascript para escrever numero por extenso:
// script
function calcularRP(){
var x = $("#valor").val();
var y = x.split(','); // separando os centavos
var numero = y[0];
var centavos = y[1];
var numeroExtenso = extenso(numero);
var real = ' reais ';
if (numero == '1'){
real = ' real ';
}
if (centavos > 0){
var centavosExtenso = extenso(centavos);
return (numeroExtenso + real + ' e ' + centavosExtenso + ' centavos');
}else{
return numeroExtenso + real;
}
}
function extenso(arrayN) {
// numeros 1 e 2 digitos
var arrayNumeros1 = new Array();
arrayNumeros1 = [["zero"], ["um"], ["dois"], ["tres"], ["quatro"], ["cinco"], ["seis"], ["sete"], ["oito"], ["nove"], ["dez"], ["onze"], ["doze"], ["treze"], ["quatorze"], ["quinze"], ["dezesseis"], ["dezesete"], ["dezoito"], ["dezenove"], ["vinte"]];
var arrayNumeros2 = new Array();
arrayNumeros2 = [[""], [""], ["vinte"], ["trinta"], ["quarenta"], ["cinquenta"], ["sessenta"], ["setenta"], ["oitenta"], ["noventa"]];
arrayNumeros3 = [["cem"], ["cento"], ["duzentos"], ["trezentos"], ["quatrocentos"], ["quinhentos"], ["seiscentos"], ["setecentos"], ["oitocentos"], ["novecentos"]];
var numeroExtenso = "";
if (arrayN < 21){ // numero até 20
numeroExtenso = arrayNumeros1[arrayN];
}else{
if (arrayN < 100){ // numero de 21 a 99
if (arrayN[1] == 0){
numeroExtenso = arrayNumeros2[arrayN[0]];
}else{
numeroExtenso = arrayNumeros2[arrayN[0]] + ' e ' + arrayNumeros1[arrayN[1]];
}
}else{
if (arrayN < 1000){ // numero de 100 a 999
if (arrayN[1] == 0 && arrayN[2] == 0){
if (arrayN[0] == 1){
numeroExtenso = arrayNumeros3[0];
}else{
numeroExtenso = arrayNumeros3[arrayN[0]];
}
}else{
if (arrayN[2] == 0){
numeroExtenso = arrayNumeros3[arrayN[0]] + ' e ' + arrayNumeros2[arrayN[1]];
}else{
numeroExtenso = arrayNumeros3[arrayN[0]] + ' e ' + arrayNumeros2[arrayN[1]] + ' e ' + arrayNumeros1[arrayN[2]];
}
}
}else{
if (arrayN < 10000){ // numero de 1000 a 9999
if (arrayN[1] == 0 && arrayN[2] == 0 && arrayN[2] == 0){
numeroExtenso = arrayNumeros1[arrayN[0]] + ' mil ';
}else{
numeroExtenso = arrayNumeros1[arrayN[0]] + ' mil e ' + extenso(arrayN[1] + arrayN[2] + arrayN[3]);
}
}else{
if (arrayN < 100000){ // numero de 10000 a 99999
if (arrayN[2] == 0 && arrayN[3] == 0 && arrayN[4] == 0){
numeroExtenso = extenso(arrayN[0] + arrayN[1]) + ' mil '
}else{
numeroExtenso = extenso(arrayN[0] + arrayN[1]) + ' mil e ' + extenso(arrayN[2] + arrayN[3] + arrayN[4]);
}
}
}
}
}
}
return numeroExtenso;
}
// html
<table>
<input type='text' value='valor' id='valor' size='9%' >";
</table