我的问题是为什么我的函数返回不了正确的返回值;

我的问题是为什么我的函数返回不了正确的返回值;

代码如下:
图片说明

比如:25000元
应纳税所得额=25000-1600=23400
应纳个人所得税税额=500×5%+1500×10%+3000×15%+15000×20%+3400×25%=4475

而我的的输出却是

应纳税所得额:2315

本人检查过算法,应该没什么问题,但却是输出不来正确的值.
求各位大佬帮忙解释一下。

主要还是看你的20000元到40000元区间的算法部分,你的截图没有,按你的思路,20000元到40000元区间的算法是:

return Tax_1+Tax_2+Tax_3+Tax_4+(Tax_num-20000)*0.25;

代码都不全,还是图片,怎么帮你

参考这个程序:https://blog.csdn.net/zw159357/article/details/53017952
无非就是范围、税率改一改

你的tax(double a)方法写错了,当出现两个if语句的时候,要是下一条if语句前不加else的话,
这两个if将不会是同一个比较级,会出现逻辑错误,当你使用断点查询的时候就会发现问题所在.

错误找到了,原因是不能用500<Tax_num<2000,要用这个(500< Tax_num )&&(Tax_num <= 2000)