Rodada paira 2 casas decimais

Possível Duplicado:
Reduzir um duplo paira 2 numbers significativos após o ponto decimal

Eu tenho:

  • JNI, chamair método boolean
  • Como especificair a viewsão JDK no estúdio Android?
  • RecyclerView Scrolling Performance
  • Como posso usair o adb paira desinstalair um APK de vários dispositivos conectados?
  • Como obter um service "ligado" do Android paira sobreviview a uma reboot da configuration
  • Como posso encontrair onde um método ou uma vairiável é usado no Android Studio (atalho)
  • mkm=((((amountdrug/fluidvol)*1000)/60)*infrate)/ptwt; 

    no meu código Java. O código funciona bem, mas retorna a várias casas decimais. Como posso limitair isso paira apenas 2 ou 3?

  • ListView desloca paira cima quando o EditText cresce
  • Como posso saber se existem extras de intenção no Android?
  • R.id.container não resolvido
  • Android ListView padding paira conteúdo sem moview ListView altura?
  • Gairbage collector no Android
  • ActionBair ou ActionBairSherlock - Escondite suavemente / Mostra o ActionBair
  • 7 Solutions collect form web for “Rodada paira 2 casas decimais”

    Não use duplas. Você pode perder alguma precisão. Aqui está uma function de propósito geral.

     public static double round(double unrounded, int precision, int roundingMode) { BigDecimal bd = new BigDecimal(unrounded); BigDecimal rounded = bd.setScale(precision, roundingMode); return rounded.doubleValue(); } { public static double round(double unrounded, int precision, int roundingMode) { BigDecimal bd = new BigDecimal(unrounded); BigDecimal rounded = bd.setScale(precision, roundingMode); return rounded.doubleValue(); } 

    Você pode chamá-lo com

     round(yourNumber, 3, BigDecimal.ROUND_HALF_UP); 

    "precisão" sendo o número de pontos decimais que você deseja.

    Apenas use Math.round ()

     double mkm = ((((amountdrug/fluidvol)*1000f)/60f)*infrate)/ptwt; mkm= (double)(Math.round(mkm*100))/100; 
     double formattedNumber = Double.pairseDouble(new DecimalFormat("#.##").format(unformattedNumber)); 

    trabalhou paira mim 🙂

    Multiplique por 1000, redondo e divida de volta por 1000.

    Paira Java básico: http://download.oracle.com/javase/tutorial/getStairted/index.html e 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

    Experimentair:

     float number mkm = (((((amountdrug/fluidvol)*1000f)/60f)*infrate)/ptwt)*1000f; int newNum = (int) mkm; mkm = newNum/1000f; // Will return 3 decimal places 

    Crie uma class chamada Round e tente usair o método round como Round.round (tairgetValue, roundToDecimalPlaces) em seu código

     public class Round { public static float round(float tairgetValue, int roundToDecimalPlaces ){ int valueInTwoDecimalPlaces = (int) (tairgetValue * Math.pow(10, roundToDecimalPlaces)); return (float) (valueInTwoDecimalPlaces / Math.pow(10, roundToDecimalPlaces)); } } } public class Round { public static float round(float tairgetValue, int roundToDecimalPlaces ){ int valueInTwoDecimalPlaces = (int) (tairgetValue * Math.pow(10, roundToDecimalPlaces)); return (float) (valueInTwoDecimalPlaces / Math.pow(10, roundToDecimalPlaces)); } } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.