Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/09/2004, 16:56
Avatar de birus
birus
 
Fecha de Ingreso: enero-2003
Ubicación: México DF
Mensajes: 47
Antigüedad: 22 años
Puntos: 0
Exclamación Numeros flotantes acotados

Hola, no se si me puedan ayudar con dos cosas, la primera es por que al hacer una resta en java con doubles por ejemplo 15.2-15.0 el resultado es 0.1999999999996 .

La segunda, me dejaron hacer un programa para corregir el error y ademas desplegar el resultado con un cierto numero de decimales, por ejemplo:

15.2 - 15.0 con dos decimales = 0.20


El programa que hice es el siguiente, pero no se como hacer lo de el numero de decimales.

Código:
import java.math.*;

public class RedondeoSBC

   {

     public static void main (String[] args)

        {    
	  
          double aux1,aux2;

          double d1 = Double.parseDouble( args[1] );

          double d2 = Double.parseDouble( args[2] );

          int i = Integer.parseInt( args [0] );
	  
          aux1 = Double.parseDouble(redondeaDecimales(d1,i));
	  aux2 = Double.parseDouble(redondeaDecimales(d2,i));

	  double d3 = aux1-aux2;

	  System.out.println("Resta= "+d3);
        }

public static String redondeaDecimales(double valorSinRedondear, int numeroDeDecimales)
        {
    
    	  BigDecimal bd = new BigDecimal(valorSinRedondear);
	  bd = bd.setScale(numeroDeDecimales, BigDecimal.ROUND_HALF_UP);
          String string = bd.toString();
	  
	  return string;
	  

        } 

  }
Espero su respuesta.
__________________
Sergio Barragán