Lago do meu Jardim

Lago do meu Jardim

quinta-feira, 29 de fevereiro de 2024

 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