Округление до 2 знаков после запятой
Возможное дублирование:Округлить вдвое до 2 значащих цифр после запятой
У меня есть:
mkm=((((amountdrug/fluidvol)*1000)/60)*infrate)/ptwt;
в моем коде Java. Код работает нормально, но возвращается к нескольким знакам после запятой. Как мне ограничить его только 2 или 3?
Переведено автоматически
Ответ 1
Не используйте удвоения. Вы можете потерять некоторую точность. Вот функция общего назначения.
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);
"точность" - это желаемое количество знаков после запятой.
Ответ 2
Просто используйте Math.round()
double mkm = ((((amountdrug/fluidvol)*1000f)/60f)*infrate)/ptwt;mkm= (double)(Math.round(mkm*100))/100;
Ответ 3
double formattedNumber = Double.parseDouble(new DecimalFormat("#.##").format(unformattedNumber));
у меня сработало :)
Ответ 4
Умножьте на 1000, округлите и разделите обратно на 1000.
Для базовой Java: http://download.oracle.com/javase/tutorial/getStarted/index.html и http://download.oracle.com/javase/tutorial/java/index.html