Redondear a 2 decimales
Posible duplicado:
Redondear un doble a 2 cifras significativas después del punto decimal
Yo tengo:
- ¿Cómo puedo obtener el valor entre paréntesis en una cadena
- Establecer el límite inferior del número de estrellas que se muestran en RatingBar Android
- División de una cadena en Java lanza PatternSyntaxException
- ¿Puedo estar seguro de que la aplicación Android terminó de ejecutarse comprobando isFinish () en OnPause () de la actividad principal?
- Eclipse se congela todo el tiempo con Ubuntu
mkm=((((amountdrug/fluidvol)*1000)/60)*infrate)/ptwt;
En mi código Java. El código funciona bien pero vuelve a varios decimales. ¿Cómo puedo limitarlo a sólo 2 o 3?
- Manejo de errores personalizados con Retrofit cuando se ofusca usando proguard da java.lang.reflect.UndeclaredThrowableException
- Diferencia entre los conceptos
- Android: manejar la desconexión inesperada de Internet durante la descarga de datos
- Cómo convertir cursorLoader en Loader <Object>
- La mejor práctica para usar Sprites en un juego usando AndEngine GLES2
- Longitud máxima de Android versionName / versionCode (Manifest)
- Tipo Advertencia de seguridad con Iterator JSON
- Crear proyecto Eclipse desde Android Git
No utilice dobles. Usted puede perder cierta precisión. Esta es una función de propósito general.
public static double round(double unrounded, int precision, int roundingMode) { BigDecimal bd = new BigDecimal(unrounded); BigDecimal rounded = bd.setScale(precision, roundingMode); return rounded.doubleValue(); }
Puedes llamarlo con
round(yourNumber, 3, BigDecimal.ROUND_HALF_UP);
"Precisión" es el número de puntos decimales que usted desea.
Sólo usa Math.round ()
double mkm = ((((amountdrug/fluidvol)*1000f)/60f)*infrate)/ptwt; mkm= (double)(Math.round(mkm*100))/100;
double formattedNumber = Double.parseDouble(new DecimalFormat("#.##").format(unformattedNumber));
Trabajado para mi
Multiplicar por 1000, redondear y dividir por 1000.
Para Java básico: http://download.oracle.com/javase/tutorial/getStarted/index.html y http://download.oracle.com/javase/tutorial/java/index.html
BigDecimal a = new BigDecimal("12345.0789");
a = a.divide(new BigDecimal("1"), 2, BigDecimal.ROUND_HALF_UP);
//Also check other rounding modes
System.out.println("a >> "+a.toPlainString()); //Returns 12345.08
Tratar:
float number mkm = (((((amountdrug/fluidvol)*1000f)/60f)*infrate)/ptwt)*1000f; int newNum = (int) mkm; mkm = newNum/1000f; // Will return 3 decimal places
Cree una clase llamada Round y pruebe a utilizar el método round como Round.round (targetValue, roundToDecimalPlaces) en su código
public class Round { public static float round(float targetValue, int roundToDecimalPlaces ){ int valueInTwoDecimalPlaces = (int) (targetValue * Math.pow(10, roundToDecimalPlaces)); return (float) (valueInTwoDecimalPlaces / Math.pow(10, roundToDecimalPlaces)); } }
- Android Studio Gradle problema de actualización a la versión 0.5.0 – Gradle de la migración de 0,8 a 0,9 – También Android Studio actualización a 0,8.1
- Bad 'Patches' en el archivo de 9 parches