mysql sum函数查询的结果与实际不符合,增加了好多小数位??

庄子 2012-03-16 02:13:43
数据库表里有一个字段是float类型,现在的值是10.9
但是我通过sum函数查询出来
SELECT sum(score) FROM `szj_pro` WHERE id=112
结果显示的值是10.8999996185303,这是为什么呢?
...全文
2268 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
coder 2012-03-16
  • 打赏
  • 举报
回复
该数据库用定点数decimal试试。或者直接round四射侮辱
xuzuning 2012-03-16
  • 打赏
  • 举报
回复
对于浮点数的加减(sum就是加了)有效的小数位与参与运算的数中小数位最少的相同
如 10.9 + 0.23 结果 11.13 按此原则就是 11.1

计算后可用 round 函数截取有小数位(他会做四舍五入)

对于需要精确计算的小数的场合(比如金融),就不能使用浮点数了
mysql 专门提供了 DECIMAL 类型来适应这种需求,当然运算速度要稍稍慢一点
庄子 2012-03-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xuzuning 的回复:]
浮点数不能做精确计算
[/Quote]
类似上面的,需要对浮点数做统计,有什么好的办法没有?
xuzuning 2012-03-16
  • 打赏
  • 举报
回复
浮点数不能做精确计算

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧