例如,我有整数,即450.我想得到N的1/100。在这种情况下,它应该是4.5,它将四舍五入为5.
int i = 450;
int round = Math.round(i/450)?
当i变化时,这总是安全吗?
答案 0 :(得分:3)
HTML("<h4> You might also like this</h4>")
将在结果传递到i/450
之前执行整数除法,您将无法得到预期的结果。即便如此,你的价值还是 ~1 / 450 ,而不是0.01。你需要
Math.round
但是你可以使用像这些
中的任何一个那样的整数数学进行舍入(int)Math.round(i/100.0);
有关详细信息,请参阅Rounding integer division (instead of truncating)
另见
这些是关于天花板功能,但你可以得到这个想法
答案 1 :(得分:1)
无论分子或分母如何,它都可以工作
BigDecimal.valueOf(450).divide(BigDecimal.valueOf(100),RoundingMode.HALF_UP);
另一种方式可能是
BigDecimal.valueOf(450,2).setScale(0, RoundingMode.HALF_UP);
您可以使用int
.intValue()
当你在大部分时间处理精确的十进制数学直到最后时,这当然是有道理的,就像金融应用程序的情况一样。
答案 2 :(得分:0)
我&#34;思考&#34;这可能就是你要找的东西:
float i = 450;
int round = Math.round(i/100);
System.out.println(round);//prints 5
div with int总是向下舍入所以当i是int时,当i在400和499之间时,表达式i / 100返回4。
或者,您可以转换为浮动:
int i = 450;
int round = Math.round((float)i/100);
System.out.println(round);//prints 5