tomar dos decimles de un double
Hola me gustar铆a saber sise pueden tomar dos decials de un double. por ejemplo si tengo el double 33.333333, me gustria quedarme 煤nicamente con 33.33
agradecer铆a la ayuda
saludos
agradecer铆a la ayuda
saludos
ya tengo la soluci贸n la dejo aqu铆 para el que le pueda interesar
Si d es tu double inicial:
double d2=Math.round(d*100)/100.0 es el doble con s贸lo dos decimales.
Ojo que redondea: 0,006 pasaria a ser 0,01.
Si d es tu double inicial:
double d2=Math.round(d*100)/100.0 es el doble con s贸lo dos decimales.
Ojo que redondea: 0,006 pasaria a ser 0,01.
Hola,...
La soluci贸n de Miguel funciona perfectamente, sin embargo existen clases y funciones optimizadas para este tipo de tareas que evitan los problemas que pudieran surgir derivados del uso del operador de divisi贸n, como p茅rdida de precisi贸n, underflow, etc... Te pongo un ejemplo comparativo...
import java.text.*;
import java.util.*;
import java.math.*;
public class FormatoDecimal{
public static void main (String args[]){
double d = 33.33433;
System.out.println("Formateando.... "+d);
// CON DECIMALFORMAT
String patron = "##.00";
DecimalFormat df= new DecimalFormat(patron);
StringBuffer result = new StringBuffer();
StringBuffer s = df.format(d, result, new FieldPosition(0));
System.out.println("Con DecimalFormat: "+s.toString());
// CON NUMBERFORMAT
String resultado = null;
NumberFormat formatoDecimal = NumberFormat.getInstance(new Locale("es","ES"));
formatoDecimal.setMinimumFractionDigits(2);
formatoDecimal.setMaximumFractionDigits(2);
resultado = formatoDecimal.format(d);
System.out.println("Con NumberFormat: "+resultado);
// CON ROUND
double d2=Math.round(d*100)/100.0;
System.out.println("Con Round:"+d2);
}
}
Espero que te sirva. Un saludo.
La soluci贸n de Miguel funciona perfectamente, sin embargo existen clases y funciones optimizadas para este tipo de tareas que evitan los problemas que pudieran surgir derivados del uso del operador de divisi贸n, como p茅rdida de precisi贸n, underflow, etc... Te pongo un ejemplo comparativo...
import java.text.*;
import java.util.*;
import java.math.*;
public class FormatoDecimal{
public static void main (String args[]){
double d = 33.33433;
System.out.println("Formateando.... "+d);
// CON DECIMALFORMAT
String patron = "##.00";
DecimalFormat df= new DecimalFormat(patron);
StringBuffer result = new StringBuffer();
StringBuffer s = df.format(d, result, new FieldPosition(0));
System.out.println("Con DecimalFormat: "+s.toString());
// CON NUMBERFORMAT
String resultado = null;
NumberFormat formatoDecimal = NumberFormat.getInstance(new Locale("es","ES"));
formatoDecimal.setMinimumFractionDigits(2);
formatoDecimal.setMaximumFractionDigits(2);
resultado = formatoDecimal.format(d);
System.out.println("Con NumberFormat: "+resultado);
// CON ROUND
double d2=Math.round(d*100)/100.0;
System.out.println("Con Round:"+d2);
}
}
Espero que te sirva. Un saludo.