博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于mysql和php使用round函数结果不同的探究
阅读量:6658 次
发布时间:2019-06-25

本文共 506 字,大约阅读时间需要 1 分钟。

hot3.png

最近由于系统中用到mysql的 round函数进行计算。

因为觉得用数据库来做计算是不太划算的事,所以就转成php来做运算了.

结果却发现php 和 mysql round出来的结果居然不一样.

举个例子:

round((32256/36864)*100) 这样一个数字 直接在mysql 和 php 运行结果都是一样的..为 88

但是 当里面的数字 用 float型字段代替做运算时..诡异的事情发生了..mysql 得到结果为87  而php 依然为88.

用计算器计算能很容易得到结果87.5  按照四舍五入  结果应该是88.

但为什么mysql 会得出87的结果呢..

主要是浮点数进行运算时精度的问题.. mysql 最后计算的结果可能是87.499999999999...那么当你四舍五入的时候得到的结果必然是87.

有一个临时解决方案是可以round 2次...先按照小数点后一位 round 然后再round 一次..一般就不会有问题了..

这个问题主要是计算机在进行浮点运算时取的精度不同导致的..

转载于:https://my.oschina.net/jiuxiaoyao/blog/76598

你可能感兴趣的文章
nginx跳转参数与实例
查看>>
如何通俗的理解极大似然估计
查看>>
交换机特性比较
查看>>
java页面模糊查询
查看>>
查看系统负载常用命令——w
查看>>
我的友情链接
查看>>
002、基本命令总结
查看>>
Java Object类
查看>>
如何用git reflog和git cherry-pick找回已删除的commit记录
查看>>
关于光驱和硬盘设为主盘的方法
查看>>
解决Linux中分区之后不能创建文件系统
查看>>
VB中的转义字符(回车、换行、Tab等)
查看>>
我的友情链接
查看>>
“Unable to execute dex: Multiple dex files define...” 解决办法
查看>>
redis数据类型
查看>>
CentOS开机简要流程
查看>>
第七周开发日志
查看>>
XenCenter7.5中创建网卡绑定
查看>>
软件测试,需要所有人的努力
查看>>
IO学习总结一
查看>>