代码之家  ›  专栏  ›  技术社区  ›  Simon

mysql在处理float时在max函数中返回的值不准确?

  •  2
  • Simon  · 技术社区  · 15 年前

    请看这个问题

    SELECT max( val_amd ) FROM `best_deposits` 
    

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

    但它又回来了 14.3599996566772

    为什么会这样,我如何才能得到确切的价值?

    2 回复  |  直到 15 年前
        1
  •  2
  •   Community Mohan Dere    9 年前

    花车是邪恶的!

    从未 只有 永远解决这些问题的方法。

    floats 不能 在很多情况下都会被准确地保存(例如在您的情况下是0.6)

    编辑:

    使用int并将金额存储在 美分

    (或者你 使用小数点(10,2)(或需要多大/多少小数点)。。。不知道这是怎么回事)

        2
  •  1
  •   Yasen Zhelev    15 年前

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