java的Float精度

多富于讽刺呀,今天不小心差点被PIR,还好现在生产上的交易额没有那么大,没有达到千万。

 

我们的系统是通过ibatis来调用DB的存储过程,DB返回的数据类型是oracle的Float类型,在ibatis中的配置是这样的:

  <parameter property="out_acct_balance"    javaType="java.lang.Float"      jdbcType="FLOAT" mode="OUT"/>  

问题就在于上面标红的东东。

 

比如数据库给返回了1234567.68,那么ibatis就会自动转换为1234567.60,郁闷不?0.08即8分钱就没有了。

 

java.lang.Float只能装8位,然后就把小数点后面的就去掉了。做个测试类测一测。

 

上面的输出就是1234567.6。

 

很小的一个问题,但就是粗心,粗心害死猫!!^_^

 

记录下来以后引以为戒。。

 

正确的做法应该是:

 <parameter property="out_acct_balance"    javaType="java.lang.String"      jdbcType="FLOAT" mode="OUT"/>  

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值