请教一些jsp浮数相加的问题,相加完的结果不对
请教一些jsp浮数相加的问题,相加完的结果不对
我从数据库取出些数据--用的rs.getFloat( " ")取的,如下
3.02 + 123.02 =146.01999 (应该为146.02)
不知道为什么?
------解决方案--------------------3.02 + 123.02 =146.01999 ?????????对吗???
好象应该是 126.04吧
------解决方案--------------------浮点数的精度问题
------解决方案--------------------取出来的时候数值肯定是对的,误差主要产生在进行数值运算的时候。
浮点数运算精度问题,如果对计算结果要求不十分地高的话,可以采用
String str = String.format( "%.2f ", 23f + 123.02f); 转成字符串。
如果对计算要求高的话(比如财务系统的话),需要采用 BigDecimal 来进行处理。
------解决方案--------------------%.2f 调float的精度
------解决方案--------------------BigDecimal a = rs.getBigDecimal( "a ");
BigDecimal b = rs.getBigDecimal( "b ");
BigDecimal c = a.add(b);
------解决方案--------------------看一下你的数据库中的字段的属性设置
单精度还是双精度~
------解决方案--------------------既然结果只要求小数点后两位,管那么多干嘛,一种是一开始设置精度,另一种是对最后运算完的结果手工进行四舍五入取合适位数。两者各有适用处,看实际情况选择。
------解决方案--------------------用 BigDecimal