我在将这些数据存入我的sql数据库时遇到了一些问题。它不断给我错误,说明它不能接受数据。我用了似乎失败的小数。我必须工作的唯一类型是varchar
。但是,我需要能够对不适用于varchar
的数据执行数学公式。无法在sql中找到数字类型来存储这么大的值
值是:
4.453099999999999881
ERROR: data conversion error (truncation)
我在将这些数据存入我的sql数据库时遇到了一些问题。它不断给我错误,说明它不能接受数据。我用了似乎失败的小数。我必须工作的唯一类型是varchar
。但是,我需要能够对不适用于varchar
的数据执行数学公式。无法在sql中找到数字类型来存储这么大的值
值是:
4.453099999999999881
ERROR: data conversion error (truncation)
您是否尝试过一些FLOAT
或DOUBLE
? 尝试DOUBLE PRECISION(52,30)
或FLOAT(53)
(https://msdn.microsoft.com/en-us/library/ms173773.aspx)
http://dev.mysql.com/doc/refman/5.0/en/floating-point-types.html http://dev.mysql.com/doc/refman/5.1/en/problems-with-float.html
float将我的数字在4个小数点处关闭,我试图将所有值保留为其精确值。 –
DOUBLE PRECISION(M,D)? – M0rtiis
使用mssql,所以这不是一个选项:( –
使用VARCHAR,然后再转换程序 – Hobroker
我会perfer避免在程序如果可能的转换价值。这样我可以做某些sql查询来优化我的结果。 –
你用指定的精度和比例来尝试十进制吗,或者只是没有定义的默认小数?这适用于我:'SELECT CONVERT(DECIMAL(19,18),4.453099999999999881);'(您可能需要一个不同的规格,具体取决于您的最大主值,所需的小数位数等等)。此外,发生?我怀疑它是在您的应用程序中,或者在批量插入/ BCP期间,而不是在SQL Server查询中... –