0

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);
4

2 回答 2

2

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

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

于 2012-07-12T06:09:55.013 回答
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);
于 2012-07-12T06:09:21.043 回答