rs.getString VS rs.getDouble

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

前几天在做一个struts的项目

我写了这样一句:

form.setA(String.valueOf((rs.getDouble("a")));

form为ActionForm对象,a为它的一个String类型的属性,同时一张表的real类型字段名为a

一个同事问我为什么不用form.setA(rs.getString("a"));

我当时也想,是啊,为什么不这样写呢,简洁一些

后来发现有问题,比如我存入的是“0.1”,赋给form却变成了“0.0999999134384034”之类一串莫名奇妙的数字

调试发现存到数据库(sybase)中的确实不是"0.1",而是“0.0999999134384034”之类的数据

所以用rs.getString("a")得到的就是“0.0999999134384034”

而用rs.getDouble("a")可以正确得到"0.1"

对于数据库Integer类型的字段,由于要存入数据和数据库中实际保存数据一致

故用String.valueOf(rs.getInt())和rs.getInt()等效

结论:

建议对于数据库real类型的字段,应首先用rs.getDouble(rs.getFloat)得到正确得值,再转化成String,而不应该直接用rs.getString

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航