MySQL 转换为十进制不能按预期工作

Ara*_*yan 2 mysql sql decimal

这个查询:

SELECT CAST(30.123456789012345 AS DECIMAL(16,16))

返回0.9999999999999999

除非我完全弄错了,否则它应该返回30.1234567890123450

谁能解释一下这是怎么回事?

谢谢!

Mar*_*ith 6

你需要DECIMAL(18,16).

16,16 保留小数点右侧值的所有 16 位可用精度数字。