データ型をfloatからdoubleに変更しようとすると、すべての10進数値も変更されます。
たとえば、0.3は0.30000001192092896になります。これを回避するには?
使うだけ
ALTER TABLE `table1` MODIFY `weight` double;
「2進数の小数部が10進数に直接一致しない」および「浮動小数点数が等しいかどうかを比較しない」というすばらしい世界へようこそ...
ALTERの後、次のことを試すことができます。
UPDATE table1 set weight = ROUND(weight, 7);
(または、7ではなく6を試してください)、余分な変換ノイズを取り除きます...