java - 为什么在 java 中 5.24% 1 = 0.2400000000000002?
问题描述
如果5.24/1
是5.24
那么1*5.24 = 5.24
,那为什么是5.24%1 = 0.24
?应该是0吧?因为1*5.24=5.24
?这导致余数为零?
mod 是否只取小数的 int 部分来除以产生余数?
解决方案
是的,%
浮点数的运算符是使模数乘以整数。
5.24 % 1 = 0.24 因为
5.24 = 5 *1 + 0.24
舍入误差还有一个单独的问题,哪些数字可以用二进制浮点数精确表示,这使得结果与 0.24 略有不同。
推荐阅读
- debian - 将文件的内容从 WSL 复制到剪贴板到 Windows?
- excel - Excel 帮助 - 如果特定单元格范围内的数据,则返回同一单元格中的列标题
- r - bptest 结果与手动计算结果不同
- sql - PSQL:如何成功提取信息并收集特定列中的所有值
- ruby-on-rails - 在rails 5上的ruby上显示wicked_pdf上的记录?
- java - 放心 - 在数组中发送 pojo
- javascript - 当试图从对象中获取属性时,得到 UNDEFINED
- python-2.7 - 使用 gmail 设置的 Python smtp 失败
- python - Python Web 浏览器 HTTP 标头
- dictionary - 从 mapshaper.org 缩小 d3 地图