如何正确实现数值增加50%?Java百分比计算结果异常排查
错误原因
- 你混淆了
%符号的语义,在Java以及绝大多数编程语言中,%是取模(求余)运算符,不是日常使用的百分比符号。 - 你的代码里
50 % salary计算的是50除以salary(也就是2000)的余数,结果为50,所以最终计算结果是2000 + 50 = 2050,和预期不符。
正确实现方案
要计算薪资的50%,对应数学逻辑是薪资 × 0.5,可以选以下任意一种写法:
- 乘法系数写法
int salary = 2000; // 乘以1.5等价于原薪资加50%的薪资,强转int是因为浮点运算结果是double类型 salary = (int) (salary * 1.5); System.out.println(salary);
- 整数运算写法(避免浮点精度问题,更适合整数百分比场景)
int salary = 2000; salary = salary + salary * 50 / 100; System.out.println(salary);
两种写法运行后都会输出预期的3000。
内容的提问来源于stack exchange,提问作者Zervis _
相关产品推荐
相关产品推荐

