我试图在MySQL数据库中保存多达三个小数点的数字。我尝试了float, float(3,2)和decimal(3,2),但没有一个能正确保存它们。请建议我应该使用哪种数据类型。
感谢From MySQL docs:
salary DECIMAL(5,2)
在本例中,5是精度,2是比例。精度表示值可存储的有效位数,小数表示小数点后可存储的位数。
对于3位小数,你需要一个&;3&;作为第二值。还要检查第一个数字:是否所有期望的数字都适合这个数字?
上面的salary列存储的值最高可达999.99。对于1000或更高的值(或-1000或更低),您将得到一个错误。更多小数(12.345)将导致值被截断的警告。
不使用FLOAT(m,n)
。
DECIMAL(3,2)
的最大值为9.99DECIMAL(5,3)
的最大值为99.999DECIMAL(8,3)
的最大值为99999.999
第二个和第三个例子有"三位小数位">&;(只有1个"小数点")
IP地址(如192.168.11.22)有3个"小数点"。
如果"他们都没有正确保存",那么请提供一个不能正常工作的INSERT
或UPDATE
的例子,加上SHOW CREATE TABLE
。