MySQL - DECIMAL(2,2)中的值1为0.99

Bad*_*sie 11 mysql

我存储货币价值,我读到FLOAT有内部舍入问题(虽然我不能说我曾经注意到任何问题)并且最好使用DECIMAL.

所以我一直在使用DECIMAL但是当我尝试将值设置为1时,它存储为0.99.我将在某些时候在JavaScript中使用该值,并且我知道我的JS计算将是错误的,因为它是0.99而不是1.00.

为什么这样做,我应该只使用FLOAT?

Mar*_*ith 22

你需要DECIMAL(4, 2)看看事物.DECIMAL(2, 2)只允许一系列的-0.99 to 0.99

精度表示为值存储的有效位数,刻度表示小数点后可存储的位数.所以在你的情况下你没有定义列以允许任何整数部分.

  • `-9999999.99至9999999.99` (2认同)