【发布时间】:2020-05-12 17:31:50
【问题描述】:
我有一个 mysql 数据库,其中表 X 具有浮点无符号列数。
当数值小于10000时,数值正确保存到小数点后两位。
但对于更多数据,它会将小数点后两位四舍五入到一位。
我不确定是否 >10000 是导致此问题的原因,但这是主要嫌疑人。
该值正在映射到应用程序实体中的浮点数。
我不知道为什么某些金额值会四舍五入。
有人遇到过类似的问题吗?
【问题讨论】:
-
如果您想要使用小数的精确值,这就是 float 看到的 dev.mysql.com/doc/refman/8.0/en/floating-point-types.html。
-
是的,这就是 FLOAT 的定义。也许你想要 DECIMAL。
-
是的,当它超过六位时,它不会保持超过 6 位的数字,而是将其设为 0 或截断它以防其十进制值。为什么特别是它只允许 6 位是什么我们不确定。理想情况下,我们会从 float 获取小数,但模式仍然不清楚。