java - java中Math.floorMod()和%的区别
问题描述
谁能告诉我 java 中 Math.floorMod() 和 % 的区别?
我当时很困惑
int a = 3;
int b = -2;
System.out.println(a % b);
System.out.println(Math.floorMod(a,b));
结果是 1 -1 而不是 1 1
解决方案
根据javadocs
如果参数的符号相同,则 floorMod 和 % 运算符的结果相同。
floorMod(4, 3) == 1; and (4 % 3) == 1
如果参数的符号不同,则结果与 % 运算符不同。
floorMod(+4, -3) == -2; and (+4 % -3) == +1
floorMod(-4, +3) == +2; and (-4 % +3) == -1
floorMod(-4, -3) == -1; and (-4 % -3) == -1
推荐阅读
- sql-server - How can I change the precision of a datetime2 for a system-versioned table (temporal table) in SQL Server?
- list - Agda stdlib Vec 在对 List 执行 fromList 后最后调用
- api - How should the options.authority be set when the api and the identity server are hosted on the same server
- reactjs - 反应管理员访问数据网格行值
- java - JAVA 8 - 在使用泛型的用户定义类中实现 Comparable - Collections.sort() 不起作用
- python - 如何识别 Pandas 中仅包含元组的列?
- node.js - npm 卡住了为 repo 提取包依赖项
- c - 为什么我的这个代码的 malloced 版本会失败?
- mysql - 如何在 MySQL 5.X 中不启用 CASCADE DELETE 的情况下删除具有外键的表中的行
- vim - 在 Vim 中,是否可以添加和减去突出显示属性而不是覆盖它们?