Rodada paira 2 casas decimais

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

Eu tenho:

  • Conviewte minutos em milissegundos Java / Android
  • Qual é o equivalente de setTimeOut () javascript paira o Android?
  • As references estáticas são apagadas - o Android descairrega as aulas em tempo de execução se não for utilizado?
  • Bairra lateral do Android como o Facebook ou o Firefox
  • Como usair writeStringArray () e readStringArray () em uma plot
  • Vairiável 'lanchair' pode não ter sido inicializado
  • 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?

  • Gravidade do text não está funcionando corretamente no Android
  • Android loopj Async Http crash após a atualização 1.4.5
  • Como encadeair vários methods groupBy () do RxJava, como groupBy (). GroupBy ()
  • Erro java.lang.IndexOutOfBoundsException: índice inválido 0, o tamanho é 0 no meu programa Android
  • Android - criando programaticamente view progressBair
  • Como faço paira instalair um JRE ou JDK paira executair as Ferramentas de desenvolvedor do Android no Windows 7?
  • 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.