Que en paz descanse: CODIGO JAVA Y CONVERTIR DE NUMEROS DECIMALES A LETRAS
Tienes cuenta en Blogger? Entonces entra.

Una vez hayas entrado, vuelve!

2005-12-01

CODIGO JAVA Y CONVERTIR DE NUMEROS DECIMALES A LETRAS

Vuelvo al ataque con este desagradable tema. Casi a nadie le interesa o eso creia yo, pues hace unos dias atras lei que en SourceForge.net los proyectos basados en Java han superado a los basados en C y que al parecer los basado en Ruby han crecido bastante en numero. Pero bueno, aqui les dejo una nueva lista de codigo para -nuevamente- pasar numeros (en este caso cifras) a palabras.

import java.io.*;

public class Cheque {

   private double cantidad;
   private String moneda;

   public Cheque(double x, String s) {
      cantidad = x;
      moneda = s;
   }

   public int getCentavo() {
      return((int)(getDecimal(cantidad)*(cantidad - getEuro()) + 1));
   // return ((int)(getDecimal()*(cantidad - Math.floor(cantidad))) + 1);
   }

   public int getEuro() {
      return((int)cantidad);
   }

   public String getTipoMoneda() {
      return moneda;
   }

   public int getDecimal(double s) {
      String str = String.valueOf(s);
      int value = 10;
      for (int i = 0; i < str.length(); ++i) {
         char x = str.charAt(i);
         if (x != '.') {
            value = 10 * value;
            break;
         }
      }
      return value;
   }

   public String toString() {
      String str = String.valueOf(getEuro());
      String y = "-";
      for (int i = 0; i <= str.length() - 1; i++) {
         char x = str.charAt(i);

         switch (x) {
            case '1': y += "uno-";
            continue;
            case '2': y += "dos-";
            continue;
            case '3': y += "tres-";
            continue;
            case '4': y += "cuatro-";
            continue;
            case '5': y += "cinco-";
            continue;
            case '6': y += "seis-";
            continue;
            case '7': y += "siete-";
            continue;
            case '8': y += "ocho-";
            continue;
            case '9': y += "nueve-";
            continue;
            case '0': y += "cero-";
            continue;
            default : System.out.println("Error 555!");
         }
      }
      return y;
   }

   public static void main(String[] args) {

      Cheque elPrecio = new Cheque(1900.34, "EUR");
      int euro = elPrecio.getEuro();
      int cent = elPrecio.getCentavo();
      String mone = elPrecio.getTipoMoneda();
      String pala = elPrecio.toString();

      System.out.println();

      System.out.print("El Cheque es por: " + euro + " ");
      System.out.print(mone);

      System.out.println(" y " + cent + " centavos. ");
      System.out.print("Y la cantidad en palabras es: " + pala + ".");
   }
}

Resultado:
El Cheque es por: 1900 EUR y 34 centavos.
Y la cantidad en palabras es: -uno-nueve-cero-cero-.