我正在尝试弄清楚当前如何舍入数字。
public static void main (String [] args) {
double outsideTemperature;
outsideTemperature = 103.46432;
/* Your solution goes here */
System.out.printf("%3.6s\n", outsideTemperature);
}
}
这段代码的打印输出为103.46,非常好,除了运行的下一个测试的变量为70.116,并且预期输出为70.12。
如何获取答案并通过两个测试?
答案 0 :(得分:2)
遇到此类问题时,您的第一站应该是文档。
System.out.printf
指向Format String Syntax。
要格式化浮点数,您需要%f
,而不是%s
(它格式化字符串,但具体不知道数字):
System.out.printf("%.2f\n", outsideTemperature);
点的前面是字段的总宽度(您不感兴趣),点的后面是小数点后的位数(在您的情况下为2)
答案 1 :(得分:1)
您可以使用Math.round()
:
outsideTemp = 103.46432;
工作方式:
Math.round(103.46432 * 100)= 10346.00(四舍五入为最接近的值)
Math.round(103.46432 * 100)/ 100 = 103.46
roundedDouble = Math.round(outsideTemp * 100.0) / 100.0;
System.out.println(roundedDouble);