mysql除法精度

neo*_*neo 2 mysql

mysql> SELECT 100/35600.00*35600.00;

+-----------------------+
| 100/35600.00*35600.00 |
+-----------------------+
|             99.999973 |
+-----------------------+

mysql> SELECT TRUNCATE(100/35600.00, 30)*35600.00;

+-------------------------------------+
| TRUNCATE(100/35600.00, 30)*35600.00 |
+-------------------------------------+
|   99.999972800000000000000000000000 |
+-------------------------------------+
Run Code Online (Sandbox Code Playgroud)

Sri*_* DD 6

您应该在 mysql 中使用 TRUNCATE() 来达到您的目的。

SELECT TRUNCATE(100/35600.00*35600.00, 2);
Run Code Online (Sandbox Code Playgroud)

它将为您提供结果 99.99

它是 TRUNCATE 的一个问题,它不会四舍五入。所以我建议你改用 ROUND() 函数。

SELECT ROUND(100/35600.00*35600.00, 2);
Run Code Online (Sandbox Code Playgroud)

结果: 100.00