【发布时间】:2013-02-18 20:32:45
【问题描述】:
在我的 MySQL 数据库中,我有字段 DECIMAL(23,5),所以小数点后有 5 位数字。现在,我什么时候会这样查询:
UPDATE my_table SET my_decimal_field = 123.123456789 WHERE id = 1
然后我将获取该记录:
SELECT id, my_decimal_field FROM gijhars WHERE id = 1
我得到这个结果:
+------+------------------+
| id | my_decimal_field |
+------+------------------+
| 5733 | 123.12346 |
+------+------------------+
当然,如果这些值在小数点后超过 6 位,MySQL 会四舍五入。 MySQL 中是否有任何设置来floor这些值而不是四舍五入?
【问题讨论】:
-
dev.mysql.com/doc/refman/5.6/en/fixed-point-types.html 当为此类列分配的值的小数点后位数超过指定比例允许的位数时,该值将转换为该比例。 (确切的行为是特定于操作系统的,但通常效果是截断到允许的位数。)
-
是的,我可以,只是好奇是否可以通过配置来完成,因为我在整个应用程序中都需要这种行为。