You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java编程中除法运算相同公式代入不同数值返回结果不一致问题

问题原因解释

这个现象和运算符优先级无关,核心是Java中整数除法的取整规则导致的:Java里两个int类型做除法时,会直接舍弃小数部分,只保留整数结果,不会做四舍五入处理。

2296场景运算拆解

  • 第一个公式 (2296 * 100 )/2296:
    先算乘法得到229600,再除以2296刚好整除,结果为100,符合预期。
  • 第二个公式 (2296/(2296/100)):
    先计算括号内的2296/100,整数除法下结果是22(准确值22.96的小数部分会被直接舍弃),再用2296除以22,得到结果104(22*104=2288,剩余的8会被舍弃),所以最终输出104。

1500场景运算拆解

  • 第一个公式 (1500 * 100 )/1500:
    乘法得到150000,除以1500刚好整除,结果为100。
  • 第二个公式 (1500/(1500/100)):
    括号内1500/100刚好整除得到15,再用1500除以15得到100,所以两个公式结果一致。

修复方案

如果想要两个公式结果一致,可以把参与运算的数值强转为浮点型,避免整数除法的取整误差,示例代码如下:

public class testpercent {
    public static void main(String args[]) {
        System.out.println("first formula  ===>"+(2296 * 100.0 )/2296);
        System.out.println("alternate formula  =====>" + (2296/(2296/100.0)));
    }
}

运行后两个公式都会输出100.0。

内容的提问来源于stack exchange,提问作者loke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 01:45:04