如何在 mysql 数据库中存储前导零的数字?

How can I store a number with a leading zero in mysql database?

我正在尝试将数字 0.0015 存储在数据库中。我试过 floatinteger 但我得到的是零,而不是我输入的确切数字。有没有可以存储这样的值的数据类型?

通常您会使用 DECIMAL(又名 NUMERIC),具有指定的比例和精度,这里是 docs for itFLOAT 应该也可以,但是你需要注意浮点运算的怪癖,所以 DECIMAL 是首选。

Here's a dbfiddle example

如果您看到数据为 0,那么要么是您插入的方式有问题(可能是从文件中导入),要么是您的客户端将其四舍五入为 0,您需要对其进行调整。从上面的 dbfiddle 可以看出,它工作得很好。

这个数字 (0.0015) 不能用二进制表示。请参阅 python 中的以下示例:

Python 3.10.2 (tags/v3.10.2:a58ebcc, Jan 17 2022, 14:12:15) [MSC v.1929 64 bit (AMD64)] on win32
>>> x = 0.0015
>>> (x + 1)  - 1
0.0015000000000000568

这意味着 mysql 中的存储(或任何其他将数字转换为二进制的语言)将显示 representation errors. You can use numeric types that doesn't do any conversion to binary, like decimal or numeric