引奈落~ 2022-10-24 21:30 采纳率: 100%
浏览 23
已结题

代码输出结果不对,不懂求解答

2019年1月1日起,国家推出新的个人所得税政策,起征点上调值5000元。也就是说税前工资扣除三险一金(三险一金数额假设是税前工资的10%)后如果不足5000元,则不交税。如果大于5000元,那么大于5000元的部分按梯度交税,具体梯度比例如下:

​ 0 ~ 3000元的部分,交税3%

​ 3000 ~ 12000元的部分,交税10%

​ 12000 ~ 25000的部分 , 交税20%

​ 25000 ~ 35000的部分,交税25%

​ 35000 ~ 55000的部分,交税30%

​ 55000 ~ 80000的部分,交税35%

​ 超过80000的部分,交税45%

运行后输出15000结果应为640,运行也没出错,怎么结果变成了这样

img

下面是我的代码


```java
package test;

import java.util.Scanner;

public class test5 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入税前工资:");
        int money = sc.nextInt();
        double money1 = money - (money * 0.1) - 5000;
        if (money1 <= 0){
            System.out.println("不交税");
        }else if (money1 > 0 && money1 <= 3000){
            System.out.println("应交税:" + money1 * 0.03);
        }else if (money1 > 3000 && money1 <= 12000){
            System.out.println("应交税:" + 3000 * 0.03 + (money1 - 3000) * 0.1);
        }else if (money1 > 12000 && money1 <= 25000){
            System.out.println("应交税:" + 3000 * 0.03 + 12000 * 0.1 + (money1 - 12000) * 0.2);
        }else if (money1 > 25000 && money1 <= 35000){
            System.out.println("应交税:" + 3000 * 0.03 + 12000 * 0.1 + 25000 * 0.2 +
                    (money1 - 25000) * 0.25);
        }else if (money1 > 35000 && money1 <= 55000){
            System.out.println("应交税:" + 3000 * 0.03 + 12000 * 0.1 + 25000 * 0.2 +
                    35000 * 0.25 + (money1 - 35000) * 0.3);
        }else if (money1 > 55000 && money1 <= 80000){
            System.out.println("应交税:" + 3000 * 0.03 + 12000 * 0.1 + 25000 * 0.2 +
                    35000 * 0.25 + 55000 * 0.3 + (money1 - 55000) * 0.35);
        }else if (money1 > 80000){
            System.out.println("应交税:" + 3000 * 0.03 + 12000 * 0.1 + 25000 * 0.2 +
                    35000 * 0.25 + 55000 * 0.3 + 80000 * 0.35 + (money1 - 80000) * 0.45);
        }
    }
}



  • 写回答

2条回答 默认 最新

  • 心寒丶 全栈领域优质创作者 2022-10-24 21:39
    关注

    后边的输出内容要括号括起来才会计算啊,不然就给你当字符拼接了
    System.out.println("应交税:" + (3000 * 0.03 + (money1 - 3000) * 0.1));

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月1日
  • 已采纳回答 10月24日
  • 创建了问题 10月24日

悬赏问题

  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程