Java - 如何将计算语句结果舍入到两个有效数字

时间:2012-07-12 06:00:47

标签: java double rounding significant-digits

Java新手,相对较新的编程。下面的代码是已经完美运行的程序的最后几行 - 我只想舍入最终结果(newTuition变量)并将其限制为两个有效数字。

newTuition,TUITIONINCREASE和学费都是双打。

    newTuition = ((TUITIONINCREASE * .01) * tuition) + tuition + ".");
    System.out.println("Your current tuition is $" + tuition + ". It will rise next year by " + TUITIONINCREASE + "% and " +
    "your new tuition will be $" + newTuition);

2 个答案:

答案 0 :(得分:2)

评论者是正确的。不要使用浮点数。你需要的是BigDecimal类。这将在数​​学运算期间为您保留精度,并包含舍入和截断的方法。

http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html

答案 1 :(得分:1)

使用BigDecimal.Round:http://docs.oracle.com/javase/1.5.0/docs/api/java/math/BigDecimal.html#round(java.math.MathContext

像这样:

BigDecimal rounded = value.round(new MathContext(2, RoundingMode.HALF_UP));
System.out.println(value + ": " + rounded);