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

时间:2011-09-12 13:40:35

标签: mysql

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

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

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

1 个答案:

答案 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.因此,在您的情况下,您尚未将列定义为允许任何整数部分。