jueves, 21 de marzo de 2013

Suma Resta Multiplicación División y Residuo con BigDecimal



Elementos con mas de 50 dígitos cada uno.

* ImprimirEnteroEnorme
* SumarEnteroEnorme
* RestarEnteroEnorme

Para comparar enteros enormes se deberán incluir :
* EsIgual
* EsDiferente
* EsMayor
* EsMenor
* EsMayorOIgual
* EsMenorOIgual

Si se desea aumentar la dificultad se pueden realizar los métodos:
* MultiplicarEnteroEnorme
* DividirEnteroEnorme
* ModuloEnteroEnorme – el residuo de enteros enormes





/////////////////////////////////////////////////////////////


        BigDecimal b1 = new BigDecimal("1400000000000000000000000000000000000000000000000000000000");
        BigDecimal b2 = new BigDecimal("400000000000000000000000000000000000000000000000000000000");
        BigDecimal r = new BigDecimal("0.0");
        r = b1.add(b2);
        System.out.println("Dato b1 "+b1);
        System.out.println("Dato b2 "+b2);
        System.out.println("");
     
        System.out.println("Suma "+r);
        System.out.println("");      
     
        r = b1.subtract(b2);
        System.out.println("Resta "+r);
        System.out.println("");      
     
        r = b1.multiply(b2);
        System.out.println("Multi "+r);
        System.out.println("");      
     
        r = b1.divide(b2);
        System.out.println("Divi "+r);
        System.out.println("");      
     
     
        double mod;
        mod = b1.doubleValue() % b2.doubleValue();
        System.out.println("Mod "+mod);
        System.out.println("");      
        r = BigDecimal.valueOf(mod);
        System.out.println("Mod "+r);
        System.out.println("");      
        r = new BigDecimal(mod);
        System.out.println("Mod "+r);
        System.out.println("");      
     
        r = b1.max(b2);
        System.out.println("Maximo "+r);
        System.out.println("");      
     
        r = b1.min(b2);
        System.out.println("Minimo "+r);
        System.out.println("");
        if(b1.equals(b2))
            System.out.println(b1+"\nson Iguales \n"+b2);
            System.out.println("");
        if(!b1.equals(b2))
            System.out.println(b1+"\nson Diferentes \n"+b2);            
            System.out.println("");
        if(b1.doubleValue() > b2.doubleValue())
            System.out.println(b1 + " \nMayor que \n"+ b2);
            System.out.println("");
        if(b1.doubleValue() < b2.doubleValue())
            System.out.println(b1 + " \nMenor que \n"+ b2);
            System.out.println("");
        if(b1.doubleValue() <= b2.doubleValue())
            System.out.println(b1 + " \nMenor o igual que \n"+ b2);
            System.out.println("");
        if(b1.doubleValue() >= b2.doubleValue())
            System.out.println(b1 + " \nMayor o igual que \n"+ b2);
            System.out.println("");
         


/////////////////////////////////////////////////////////////
     


Saludos !!

3 comentarios:

  1. excelente compa tenia duda con el modulo y me lo solucionaste +10

    ResponderEliminar
  2. gracias, estuve batallando con el double y el bigdecimal soluciona lo de la precision

    ResponderEliminar