我使用以下代码来舍入十进制数
private float roundOffTwoDigits(float number) {
DecimalFormat toTheFormat = new DecimalFormat("0.0");
toTheFormat.setRoundingMode(RoundingMode.DOWN);
number = Float.valueOf(toTheFormat.format(number));
return number;
}
Run Code Online (Sandbox Code Playgroud)
现在有我得到的输出
因此,即使是小数位后的数字,如果它大于5,它也会减少不应该发生的值.
有人用这个问题标记了我的问题重复这里是浮点数学吗?,我不确定为什么?
这个问题与java和android完全没有关系,也没有我期待的答案和讨论.
该方法已正确舍入.2.6不能完全表示为a float.当你写作float a = 2.6F;,a真的
2.599999904632568359375
Run Code Online (Sandbox Code Playgroud)
要正确地执行此操作,您应该float完全免除,并使用BigDecimal它的String构造函数来完成它.
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |