我的查询相对简单,但想知道根本原因
将Float转换为Decimal的SQL查询会产生不正确的结果。
示例:
Select CAST(CONVERT(DECIMAL(25,8), CONVERT(FLOAT,338193293.16))AS VARCHAR(255))
预期结果:338193293.16000000
实际结果:338193293.16000003
额外的3
来自哪里?
答案 0 :(得分:1)
位数过多 - 无论小数点后它们只有2位。使用较短的数字,例如38193293.16或使用FLOAT(24)。对于普通FLOAT,有“精确= 7位”。