从DOUBLE(15,2)转换为DECIMAL(15,2)

时间:2011-08-05 20:12:42

标签: mysql type-conversion

在mysql中在double和decimal之间进行转换时会不会有数据丢失?

3 个答案:

答案 0 :(得分:2)

双打有~16个十进制数字的精度。所以答案是否定的,因为两种类型都被声明为具有15个十进制数字的精度。 (如果类型有16位数,则取决于存储的数字,因为双精度实际上在15到16位之间。)

答案 1 :(得分:0)

  

DECIMAL的最大位数为65(从MySQL 5.0.3到5.0.5为64位)。在MySQL 5.0.3之前,DECIMAL值的最大范围与DOUBLE相同,但给定DECIMAL列的实际范围可以通过给定列的精度或比例来约束。 Manual

我猜不会。

答案 2 :(得分:0)

DOUBLE-precision浮点数精确到大约15位小数。 DECIMAL的精度为65位。从DOUBLE转换为DECIMAL时,您不会丢失任何数据。正如Brad所说,之前DECIMAL值的最大范围与DOUBLE相同。 Numeric Type Overview

如果您正在对数据进行数值计算并且需要超过15位小数,我建议您花时间将列转换为DECIMAL,因为DOUBLE存储了值的近似值而不是实际值。