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

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

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日

悬赏问题

  • ¥50 关于#html5#的问题:H5页面用户手机返回的时候跳转到指定页面例如(语言-javascript)
  • ¥15 无法使用此凭据登录,因为你的域不可用,如何解决?(标签-Windows)
  • ¥15 yolov9的训练时间
  • ¥15 二叉树遍历没有报错但无法正常运行
  • ¥15 在linux系统下vscode运行robocup3d上场球员报错
  • ¥15 maven环境配置后无法运行mvn -v
  • ¥15 Python语言实验
  • ¥15 SAP HANA SQL 增加合计行
  • ¥20 用C#语言解决一个英文打字练习器,有偿
  • ¥15 srs-sip外部服务 webrtc支持H265格式