php – MySQL圆怪异常的bug

我面临着一个非常奇怪的错误?现在在 mysql php上. 是一个简单的选择,在下面的例子中,我使用多个字段来尝试解释我的问题: “field”是11.5 $phpvar是1.15 MySQL查询: select round(field * . $phpvar . ,2) as a1, round(field * 1.15 ,2) as a2, rou

我面临着一个非常奇怪的错误?现在在
mysql php上.

是一个简单的选择,在下面的例子中,我使用多个字段来尝试解释我的问题:

>“field”是11.5
> $phpvar是1.15

MySQL查询:

select round(field * " . $phpvar . ",2) as a1,round(field * 1.15,2) as a2,round(11.5 * " . $phpvar . ",2) as a3,round(11.5 * 1.15,2) as a4,field * " . $phpvar . " as a5 
from ...

好吧,我想要得到13.23. “field”* $phpvar = 13.225,所以使用round(13.225,2)我应该得到13.23,对吗?好吧,是的,不.

查询结果:

> a1 [round(field *“.$phpvar.”,2)] => 13.22
> a2 [round(field * 1.15,2)] => 13.22
> a3 [round(11.5 *“.$phpvar.”,2)] => 13.23
> a4 [round(11.5 * 1.15,2)] => 13.23
> a5 [field *“.$phpvar.”] => 13.225(无圆)

我错过了什么?怎么可能,当谈到使用“领域”时,我的结果是假轮?

问题是如何存储DOUBLE和FLOAT值.

有可能(并且可能)将像11.5或22.475这样的值存储在近似值中,如11.499999999999~或22.475000000000000001,因此某些计算或舍入可能导致不正确的结果.

将浮点值存储到DECIMAL coulmn类型中总是更好,其中值与所有十进制数字完全存储并且不是近似值.

作者: dawei

【声明】:滨州站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部