如何在JAVA中使用Math.round获得我想要的内容?

时间:2014-12-21 17:06:26

标签: java rounding

我使用此代码对值进行舍入:

Math.round(x * 100) / 100.0;

但它并没有回报我需要的东西。

例如:x = 83.5067

我想要的是什么:83.51 我得到了什么:83.5

3 个答案:

答案 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 - 方法非常灵活,您可以设置所需的小数位数和舍入模式。