在处理浮点数时,mysql在max函数中返回不是确切的值?

时间:2010-10-27 12:26:20

标签: mysql phpmyadmin max

请查看此查询

SELECT max( val_amd ) FROM `best_deposits` 

我的表中的最大值等于14.6(字段的类型为float),

但它会返回14.3599996566772

为什么会发生,我怎样才能得到确切的价值?

非常感谢

2 个答案:

答案 0 :(得分:2)

花车是邪恶的!

从不使用浮动来存储金额或价格。而不是那样,使用一个int并以美分存储金额。那就是唯一的永远解决这些问题的方式。

为什么会发生这种情况:因为floats 无法在许多情况下(例如在您的情况下为0.6)完全保存

PS:到目前为止,我们已经将这些问题用于不同语言的hundret时间:

编辑:评论:正如我所说:

  

使用int并存入金额   美分

(或者你可以使用DECIMAL(10,2)(或你需要多少/多少小数位)......不确定这是如何工作的)

答案 1 :(得分:1)

或者你最好使用长度为10,2的“十进制”或类似的东西来存储价格。