舍入到小数点后2位

Ala*_*lan 28 java android

可能重复:
将小数点后的双精度数加到2位有效数字

我有:

mkm=((((amountdrug/fluidvol)*1000)/60)*infrate)/ptwt; 
Run Code Online (Sandbox Code Playgroud)

在我的Java代码中.代码工作正常,但返回到几个小数位.如何将其限制为2或3?

blu*_*l2k 90

不要使用双打.你可能会失去一些精确度.这是一个通用功能.

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

你可以用它来调用它

round(yourNumber, 3, BigDecimal.ROUND_HALF_UP);
Run Code Online (Sandbox Code Playgroud)

"precision"是你想要的小数点数.

  • import java.math.BigDecimal (8认同)

Sas*_*tch 10

只需使用Math.round()

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

mkm= (double)(Math.round(mkm*100))/100;
Run Code Online (Sandbox Code Playgroud)


小智 8

double formattedNumber = Double.parseDouble(new DecimalFormat("#.##").format(unformattedNumber));
Run Code Online (Sandbox Code Playgroud)

为我工作:)