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);
答案 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);