我使用此代码对值进行舍入:
Math.round(x * 100) / 100.0;
但它并没有回报我需要的东西。
例如:x = 83.5067
我想要的是什么:83.51
我得到了什么:83.5
答案 0 :(得分:1)
如果您的输出为双倍,则可以正常显示here
public static void main (String[] args) throws java.lang.Exception
{
double a = Math.round(83.5067 * 100) / 100.0;
System.out.println(a);
}
将打印83.51
答案 1 :(得分:1)
我建议您使用格式化输出而不是舍入。像,
double x = 83.5067;
System.out.printf("%.2f%n", x);
但是,要执行请求的舍入,您可以使用
double x = 83.5067;
x = Math.round(x * 100);
x /= 100;
System.out.println(x);
两个输出
83.51
答案 2 :(得分:0)
我喜欢使用BigDecimal
进行这类操作。
// Round it
final BigDecimal myRoundedNumber = BigDecimal.valueOf(83.5067).setScale(2, RoundingMode.HALF_UP);
// If you need it as a double
final double d = myRoundedNumber.doubleValue();
setScale
- 方法非常灵活,您可以设置所需的小数位数和舍入模式。