MySql:插入十进制值(失真)

MySql:插入十进制值(失真),mysql,Mysql,你能帮我理解如何在表中插入十进制数据吗 我的代码: INSERT INTO wp_ved_currencies (date, char_code, name, nominal, value) VALUES('2019/11/25', 'USD', 'US dollar', 1, 31.0902); 问题是十进制值失真: 您应该为精度和比例使用不同的值 value decimal(20, 8) 这意味着20位,小数点后

你能帮我理解如何在表中插入十进制数据吗

我的代码:

INSERT INTO 
                  wp_ved_currencies (date, char_code, name, nominal, value)
                VALUES('2019/11/25', 'USD', 'US dollar', 1, 31.0902);
问题是十进制值失真:


您应该为精度和比例使用不同的值

  value decimal(20, 8) 
这意味着20位,小数点后有8位

或为您提供数据样本31.0902

  value decimal(6, 4) 
请为值列使用双(6,4)数据类型。 谢谢

十进制(20,20)
表示您的十进制数最多可以有20位数字,所有数字都在小数点的右侧。总共20位-小数点后20位,左侧0位。
此列中可存储的最大数字为
0.99999999999999999

使用两个不同的数字表示精度和比例。例如,
DECIMAL(10,4)
允许的最大数字为
9999999


您试图存储的数字溢出了可能的最大值,因此最大值存储在列中。

我已尝试过。不工作。结果变成了9.9999。看起来很奇怪。。检查得更好。。可能您已经为十进制分隔符配置了逗号。。尝试插入310902这是因为您的MySQL设置不正确。正确配置的MySQL服务器将中止INSERT语句,并出现“超出范围”错误。