您提供了代码段
for (int i = 10; i < 10000000; i *= 10) { System.out.println(((int) (Math.log10(i)) + 1) + " " + ((int) (Math.log(i) / Math.log(10)) + 1));}
来说明你的问题。只需删除强制转换,
int然后再次运行循环即可。您将收到
2.0 2.03.0 3.04.0 3.99999999999999965.0 5.06.0 6.07.0 6.999999999999999
可以立即回答您的问题。正如tliff所说,强制转换会舍去小数而不是正确舍入。
编辑: 您更新到使用你的问题
floor(),但像铸造
floor()将全面 下降 ,因此下降的小数!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)