为什么用ROUND四舍五入总是无法得到正确数值?
2008-04-26 23:25
351 查看
为什么用ROUND四舍五入总是无法得到正确数值?
作者:cg1 摘自:access911.net
问题:
为什么用ROUND四舍五入总是无法得到正确数值?
比如
ROUND(11.115,2) 竟然会等于 1.11 而不是 1.12
又比如:我在查询中写了以下语句:
SELECT ROUND(0.005, 2) as ID;
结果不是我期望的0.01,而是0,如果想得到0.01,应该怎样做?
回答:
原因很简单,在进行精确计算时应该使用“货币”类型字段而不是常用得“数字”“双精度”,应为双精度得存储方式不是以十进制直接存储,而是用科学计数法算出来的,总会产生误差的。
如果你必须使用双精度,建议分开存储小数位以及整数位。
关于在查询中可以使用以下语句解决
SELECT Format(0.005, '#.##') AS ID;
作者:cg1 摘自:access911.net
问题:
为什么用ROUND四舍五入总是无法得到正确数值?
比如
ROUND(11.115,2) 竟然会等于 1.11 而不是 1.12
又比如:我在查询中写了以下语句:
SELECT ROUND(0.005, 2) as ID;
结果不是我期望的0.01,而是0,如果想得到0.01,应该怎样做?
回答:
原因很简单,在进行精确计算时应该使用“货币”类型字段而不是常用得“数字”“双精度”,应为双精度得存储方式不是以十进制直接存储,而是用科学计数法算出来的,总会产生误差的。
如果你必须使用双精度,建议分开存储小数位以及整数位。
关于在查询中可以使用以下语句解决
SELECT Format(0.005, '#.##') AS ID;
相关文章推荐
- 为什么用ROUND四舍五入总是无法得到正确数值?
- 为什么我上传了flv或MP4文件到服务器,可输入正确地址通过http协议来访问总是出现“无法找到该页”的404错误呢?这就表明mp4格式文件是服务器无法识别的,其实,这是没有在iis中将相应的MIME类型进行设置的原因。那该怎样设置MIME
- c++调试记录--内存无法访问以及逻辑正确却总是得到错误结果
- 为什么我上传了flv或MP4文件到服务器,可输入正确地址通过http协议来访问总是出现“无法找到该页”的404错误呢
- 在使用了UpdatePanel后,在服务器端为什么无法得到DropDownList的SelectedIndex的正确值
- (转)探索C++的秘密之详解extern "C",这就是为什么很多.lib被我们正确调用确总是无法解析的。
- 探索C++的秘密之详解extern "C",这就是为什么很多.lib被我们正确调用确总是无法解析的。
- 狗血的IE6,获取多选下拉列表值时,竟然总是无法获取正确的值
- 为什么项目型软件公司很累?程序员拼死拼活做项目为啥总是无法按时完成?原因主要是软件需要完善的细节太多
- jsp request,正确使用. 为什么不能使用 getAttribute 得到保存的数据
- 为什么我打开QTP以后,active screen总是提示无法显示网页---终于解决了
- 【为什么总是被甩?五个男人无法跟…
- 为什么你总是无法摆脱痛苦?
- 如何正确使用搜索 -- 他们都说要百度,可为什么我总是百度不到?
- 判断应用是否存在快捷方式的方法在很多手机上都无法得到正确的结果的解决办法
- getWidth和getMeasuredWidth在何时可以得到正确数值
- 为什么项目型软件公司很累?程序员拼死拼活做项目为啥总是无法按时完成?原因主要是软件需要完善的细节太多
- Qt按钮为什么设置了三态点击样式效果,无法得到预期,enabled属性为何无法选中 - C/C++解惑之Qt
- 听说苹果手机的一个BUG是无法得到如图的正确结果?
- Python 为什么不解决四舍五入(round)的“bug”