简单 - 与浮子左侧额
(即10.00000123而不是10)爪哇 - 除去浮剩菜优雅
这里,我去,我有一个困难时期:
我需要生成的列表具有恒定间隙浮如下 (实际上它的地图,我需要没关系retreive对象螺母)
列表A:0.25,0.5,0.75,1,...
或
列表B:0.01 , 0.02,0.03,0.04,...
每当我得到一个数字,我把它四舍五入到列表中最亲密的单元格。
可以说我得到0.051来检索列表A中的一个单元格 - 我返回0.05。
可以说让我在列表B中得到0.21来检索一个单元格 - 我返回0.25。
所以,我开始做这个
float a = Math.round(Value/step) * step;
但比我得到了很多的时间0.2500001(浮动剩菜) 我需要一个聪明的方式来圆它。
可能采取的位数点后,再次做
Math.round(Value/100) * 100;?
有没有更聪明的方法? 我试过癞这个
final float factor = Math.round(1/step);
final float value = (float) Math.round(value * factor)/factor;
,但我有时候有一个列表这样
列表A:10,15,20,25,30,...
,当我得到22 I retreive 20. 问题的小区是当我的10
Math.round(1/baseAssetStep)
的间隙
返回0 - 我得到的NaN
四舍五入是必要的吗?如果打印它们是问题,则可以将浮标保持原样并以特定的精度进行打印。例如,'String.format(“%。4f”,2.142133);'会四舍五入到四个地方...... – st0le 2012-01-31 08:12:33
使用BigDecimal时,你需要确切的数字 – Dapeng 2012-01-31 08:13:03
四舍五入是必须的。我需要知道有多少个小数位。可以说我得到了o.25f。我需要知道它是2位数字。但是如果我得到0.25000001呢? \ – Jeb 2012-01-31 08:17:05