在mysql中在double和decimal之间进行转换时会不会有数据丢失?
答案 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存储了值的近似值而不是实际值。