我正在存储货币价值,我读到FLOAT有内部舍入问题(虽然我不能说我曾经注意到任何问题)并且最好使用DECIMAL。
所以我一直在使用DECIMAL但是当我尝试将值设置为1时,它存储为0.99。我将在某些时候在JavaScript中使用该值,并且我知道我的JS计算将是错误的,因为它是0.99而不是1.00。
为什么这样做,我应该只使用FLOAT吗?
答案 0 :(得分:19)
你看起来需要DECIMAL(4, 2)
。 DECIMAL(2, 2)
仅允许-0.99 to 0.99
The precision represents the number of significant digits that are stored for values, and the scale represents the number of digits that can be stored following the decimal point.因此,在您的情况下,您尚未将列定义为允许任何整数部分。