首页 > 解决方案 > 为什么在 java 中 5.24% 1 = 0.2400000000000002?

问题描述

如果5.24/15.24那么1*5.24 = 5.24,那为什么是5.24%1 = 0.24?应该是0吧?因为1*5.24=5.24?这导致余数为零?

mod 是否只取小数的 int 部分来除以产生余数?

标签: java

解决方案


是的,%浮点数的运算符是使模数乘以整数。

5.24 % 1 = 0.24 因为

5.24 = 5 *1 + 0.24

舍入误差还有一个单独的问题,哪些数字可以用二进制浮点数精确表示,这使得结果与 0.24 略有不同。


推荐阅读