Rounding a number up in Java
本问题已经有最佳答案,请猛点这里访问。
我不知道如何把数字四舍五入到某些小数点我到处找,试过每一件事
目前我的程序是用整数
double rSAT = Math.ceil(SAT);
double rGPA = Math.ceil(GPA);
但我要把它四舍五入到小数点后两位
仅供参考-我是个高中生,我真的不需要超复杂的东西。要做到这一点,因为我需要我的方法少于15,我可以浪费任何线路。
可能有一种更简单的方法,但显而易见的是:
1 |
这会将2.123这样的数字变为212.3,将其四舍五入为213,然后再将其除以2.13。
通常,四舍五入最好在呈现数字时完成(如字符串)。这样就可以以最高的精度存储/传递数字,并且只有在向用户显示数字时才会截断信息。
此代码最多四舍五入到小数点后两位,并使用天花板。
1 2 3 4 5 6 7 | double unrounded = 3.21235; NumberFormat fmt = NumberFormat.getNumberInstance(); fmt.setMaximumFractionDigits(2); fmt.setRoundingMode(RoundingMode.CEILING); String value = fmt.format(unrounded); System.out.println(value); |
如果要查找数字的字符串表示形式,可以执行以下操作:
1 2 |
这个问题以前被问过,检查如何在Java中把数字转换成小数位数。
在我看来,最简单的解决方案是克里斯的这一个:
1 2 3 | double myNum = .912385; int precision = 10000; //keep 4 digits myNum= Math.floor(myNum * precision +.5)/precision; |