Java: Truncar o Redondear un Numero Double a n Decimales
Hace unos dias tuve la necesidad de redondear y truncar un numero Double; total que me puse “creativo” y termine usando un metodo basado en Strings… el cual si bien si me funcionaba tenia un sinfin de “excepciones” o mejor dicho “particularidades”… que si era negativo, que si era mayor a tal numero etc. Eso me llevo a probar otra forma pero basado en DecimalFormat, la cual en la mayoria de los casos terminaba redondeando.
Para no hacerlo muy largo este post, les dejo los metodos que ensamble apartir de pedazos de codigo que encontre en la red.
Redondear un numero a n Decimales
public double Redondear(double nD, int nDec)
{
return Math.round(nD*Math.pow(10,nDec))/Math.pow(10,nDec);
}
Truncar un numero a n Decimales
public double Truncar(double nD, int nDec)
{
if(nD > 0)
nD = Math.floor(nD * Math.pow(10,nDec))/Math.pow(10,nDec);
else
nD = Math.ceil(nD * Math.pow(10,nDec))/Math.pow(10,nDec);
return nD;
}
Ya saben cualquier duda comentario o sugerencia la pueden dejar como comentario; espero les sirvan estos metodos, los cuales probe y efectivamente me funcionaron.
Posts Relacionados
September 4th, 2008 at 3:27 pm
Generalmente yo uso la calse DecimalFormat especificando el formato que deseo.
DecimalFormat format = new DecimalFormat(”#0.00″);
September 4th, 2008 at 5:02 pm
@miguelucho042:
Te lo digo por experiencia… no funciono :S Si no mal recuerdo termina redondeandote los decimales (para el caso del redondeo bien podria ser una opcion) pero para el truncamiento no mas no.
Saludos!!!