Круглые до 2 знаков после запятой

Возможный дубликат:
Закруглить двойную до 2 значащих цифр после десятичной точки

У меня есть:

mkm=((((amountdrug/fluidvol)*1000)/60)*infrate)/ptwt; 

В моем Java-коде. Код работает нормально, но возвращается к нескольким десятичным знакам. Как ограничить его до 2 или 3?

Solutions Collecting From Web of "Круглые до 2 знаков после запятой"

Не используйте парные. Вы можете потерять некоторую точность. Вот функция общего назначения.

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

Вы можете позвонить ему

 round(yourNumber, 3, BigDecimal.ROUND_HALF_UP); 

«Точность» – это количество десятичных точек, которые вы желаете.

Просто используйте 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)); 

Работал на меня 🙂

Умножьте на 1000, округлите и разделите назад на 1000.

Для базовой Java: http://download.oracle.com/javase/tutorial/getStarted/index.html и 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

Пытаться:

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

Создайте класс Round и попробуйте использовать метод round как round.round (targetValue, roundToDecimalPlaces) в вашем коде

 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)); } }