请查看此查询
SELECT max( val_amd ) FROM `best_deposits`
我的表中的最大值等于14.6(字段的类型为float
),
但它会返回14.3599996566772
为什么会发生,我怎样才能得到确切的价值?
非常感谢
答案 0 :(得分:2)
花车是邪恶的!
从不使用浮动来存储金额或价格。而不是那样,使用一个int并以美分存储金额。那就是唯一的永远解决这些问题的方式。
为什么会发生这种情况:因为floats 无法在许多情况下(例如在您的情况下为0.6)完全保存
PS:到目前为止,我们已经将这些问题用于不同语言的hundret时间:编辑:评论:正如我所说:
使用int并存入金额 美分
(或者你可以使用DECIMAL(10,2)(或你需要多少/多少小数位)......不确定这是如何工作的)
答案 1 :(得分:1)
或者你最好使用长度为10,2的“十进制”或类似的东西来存储价格。