急Java计算个人所得税的问题
黄盛洁
来自:
移动端
2021-03-30 07:58
声明:本网站依照法律规定提供财经资讯,未授权或允许任何组织与个人发布交易广告。对任何广告信息请谨慎交易,谨防诈骗。举报邮箱:xxxxxxxxx@qq.com
2021-03-30 08:10最佳答案
读文件,可以按文字读,也可以按JAVA对象读。
而关于税的计算,百度中肯定可以搜索到。
其他回答(共7条)
-
2021-03-30 08:22 黄盛林 客户经理
java计算个税例子:
/**
* @author Kun Sun
* @Date: 2013.10.15
*/
public class Employee { // 雇员类
private String ID; // ID
private String name; // 姓名
private int salary; // 工资薪金所得
private int insureHome; // “五险一金”数额
private int deduct; // 扣除数额
Employee(){
}
Employee(String ID,String name){ // 带参数的构造方法
this.ID = ID;
this.name = name;
}
Employee(String ID,String name,int salary,int insureHome,int deduct){ // 带参数的构造方法
this.ID = ID;
this.name = name;
this.salary = salary;
this.insureHome = insureHome;
this.deduct = deduct;
}
public String getID() {
return ID;
}
public String getName() {
return name;
}
public int getSalary() {
return salary;
}
public int getInsureHome() {
return insureHome;
}
public int getDeduct() {
return deduct;
}
public void setID(String iD) {
ID = iD;
}
public void setName(String name) {
this.name = name;
}
public void setSalary(int salary) {
this.salary = salary;
}
public void setInsureHome(int insureHome) {
this.insureHome = insureHome;
}
public void setDeduct(int deduct) {
this.deduct = deduct;
}
public void selfValue(){ // 个人所得税具体计算
double sefValue;
if(salary>=0 && salary<1500){
sefValue = (double)(salary-insureHome-deduct)*0.03 - 0;
}else if(salary>=1500 && salary<4500){
sefValue = (double)(salary-insureHome-deduct)*0.1 - 105;
}else if(salary>=4500 && salary<9000){
sefValue = (double)(salary-insureHome-deduct)*0.2 - 555;
}else if(salary>=9000 && salary<35000){
sefValue = (double)(salary-insureHome-deduct)*0.25 - 1005;
}else if(salary>=35000 && salary<55000){
sefValue = (double)(salary-insureHome-deduct)*0.30 - 2755;
}else if(salary>=55000 && salary<80000){
sefValue = (double)(salary-insureHome-deduct)*0.35 - 5505;
}else{
sefValue = (double)(salary-insureHome-deduct)*0.45 - 13505;
}
System.out.println(sefValue);
}
}
// 用于测试雇员类
public class MainClass {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("第一种调用方法:");
Employee emp = new Employee("1001","Sun");
emp.setSalary(12345);
emp.setInsureHome(890);
emp.setDeduct(55);
System.out.println("编号为"+emp.getID()+",姓名是"+emp.getName()+" 的应纳税额是:");
emp.selfValue();
System.out.println("------------------------\n第二种调用方法:");
Employee emp2 = new Employee("1001","Sun",12345,890,55);
System.out.println("编号为"+emp2.getID()+",姓名是"+emp2.getName()+" 的应纳税额是:");
emp2.selfValue();
System.out.println("------------------------\n第二种调用方法:");
Employee emp3 = new Employee();
emp3.setID("1001");
emp3.setName("Sun");
emp3.setSalary(12345);
emp3.setInsureHome(890);
emp3.setDeduct(55);
System.out.println("编号为"+emp3.getID()+",姓名是"+emp3.getName()+" 的应纳税额是:");
emp3.selfValue();
}
}
运行结果:
-
2021-03-30 08:19 龚安静 客户经理
public class Employee {
String name;
double salary;
double subsidy;
private Scanner sc;
public void setA() {
sc = new Scanner(System.in);
System.out.println("请输入员工的姓名:");
name = sc.next();
try {
name = new String(name.getBytes("GBK"));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 可是我怎么都运行不出来,求好心人帮帮忙看看!!
System.out.println("请输入员工工资:");
salary = sc.nextDouble();
System.out.println("请输入员工的加班补贴:");
subsidy = sc.nextDouble();
}
public void getshuishou() {
double before = 0;
double after = 0;
double suodeshui = 0;
before = salary + subsidy;
if (before >= 2000 && before < 2500) {
suodeshui = ((before - 2000) * 0.05);
} else if (before >= 2500 && before < 4000) {
suodeshui = ((before - 2000) * 0.1);
} else if (before >= 4000 && before < 7000) {
suodeshui = ((before - 2000) * 0.15);
} else if (before >= 7000 && before < 22000) {
suodeshui = ((before - 2000) * 0.2);
} else if (before >= 22000) {
suodeshui = ((before - 2000) * 0.3);
} else {
suodeshui = 0;
}
after = before - suodeshui; //把这句放到这里。
System.out.print("员工" + name + "的税前收入为:" + before + "元" + "," + "税后收入为"
+ after + "元" + "," + "您缴纳的个人所得税为:" + suodeshui + "元");
}
public static void main(String[] args) {
Employee emp = new Employee();
emp.setA();
emp.getshuishou();
}
}我给你修改了一下。。你看看。
我给你把这个代码 改了一下,你看,你能不能看出它的好处。。
public class Employee {
private String name;
private double salary;
private double subsidy;
/**
* 无参构造
*/
public Employee() {
// TODO Auto-generated constructor stub
}
/**
* 有参构造
* @param name
* @param salary
* @param subsidy
*/
public Employee(String name,double salary,double subsidy) {
this.name = name;
this.salary = salary;
this.subsidy = subsidy;
}
/**
* 计算税收
* @author 朱泽江
* @date 2014-4-11 下午05:40:37
*/
public void getshuishou() {
double before = 0;
double after = 0;
double suodeshui = 0;
before = salary + subsidy;
if (before >= 2000 && before < 2500) {
suodeshui = ((before - 2000) * 0.05);
} else if (before >= 2500 && before < 4000) {
suodeshui = ((before - 2000) * 0.1);
} else if (before >= 4000 && before < 7000) {
suodeshui = ((before - 2000) * 0.15);
} else if (before >= 7000 && before < 22000) {
suodeshui = ((before - 2000) * 0.2);
} else if (before >= 22000) {
suodeshui = ((before - 2000) * 0.3);
} else {
suodeshui = 0;
}
after = before - suodeshui;
System.out.print("员工" + name + "的税前收入为:" + before + "元" + "," + "税后收入为"
+ after + "元" + "," + "您缴纳的个人所得税为:" + suodeshui + "元");
}
/**
* 测试的方法
* @author 朱泽江
* @date 2014-4-11 下午05:41:16
* @param args
* 这样写的好处是把业务类,与测试类,分开
*/
public static void main(String[] args) {
Scanner sc;
sc = new Scanner(System.in);
System.out.println("请输入员工的姓名:");
String name = sc.next();
try {
name = new String(name.getBytes("GBK"));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 可是我怎么都运行不出来,求好心人帮帮忙看看!!
System.out.println("请输入员工工资:");
double salary = sc.nextDouble();
System.out.println("请输入员工的加班补贴:");
double subsidy = sc.nextDouble();
Employee emp = new Employee(name,salary,subsidy);
emp.getshuishou();
}
} -
2021-03-30 08:16 辛国海 客户经理
120万元的套房,预计净残值于10%计算,使用年限20年,则每月折旧为4500元。
公司给王某提供套房属于福利,王某每月得到的薪酬=4500+25000=29500元。
王某每月应交的个人所得税=(29500-2000)*25%-1375=5500元。
工作5年半也一样。
若公司不把给王某的福利列入纳税的话
王某每月应纳个人所得税=(25000-2000)*25%-1375=4375元 -
2021-03-30 08:13 齐晓平 客户经理
个税计算公式有2种方法
用超额累进制,只要将应纳税所得额的分段区间乘以税率就行。
速算扣除数是用全额累进的计税方法,只要减掉这个常数,就等于用超额累进方法计算的应纳税额,故称速算扣除数”,解释参考百度百科。
简单实例:
月工资4500元,减去2000,剩余2500应缴税
用 超额累进制 500*5%+1500*10%+500*15%=250
用 速算扣除数 2500*15%-125=175=250
程序实现过程中,首先定义了p = 7级,应纳税额边界值数组,税率数组。较常规的做法是用ifelse语句逐级考虑应纳税所得额的大小,但这样写程序代码量大且不易看懂。本程序利用7级循环对传进参数income分段计算。进入相应级时,如果有相应段的超出额,即乘以该段的税率。具体实现如下:
class Caculate{
private String name;
private double money;
private double actual;
/**
* @param username 用户名
* @param money 用户税前收入
*/
public Caculate(String username,double money) {
this.name=username;
this.money=money;
}
public double HowMany(){
//java中switch的case变量只支持int char string,而此处是double,所以不能使用switch
double shouru = money;//构造函数中本来已经有this.money了,所以再次使用的使用,用成money即可
if(shouru <= 1500){
System.out.print("不需要缴纳个人所得税");
this.actual=shouru;
}else if(1500 < shouru && shouru < 3000){
this.actual = shouru*(1 - 0.05);
}if(3000 <= shouru){
this.actual=shouru-(shouru-3000)*0.1;
}
System.out.println("实际收入为:"+this.actual);
return this.actual;
}
}
/**
* PersonalFax.java
*/
public class PersonalFax {
public static void main(String args[]){
Caculate shiji = new Caculate("张三", 1000.2345);
double shou =shiji.HowMany();
System.out.printf("%.3f", shou);
}
} -
2021-03-30 08:07 车广伟 客户经理
1.根据个人所得税规定,工资收入应纳税额是:
应纳税所得额=32600-2000=30600
应纳个人所得税
=应纳税所得额*适用税率-速算扣除数=30600*25%-1375=6275
2.劳务报酬:
劳务报酬应纳税额=70000*(1-20%)=56000
应纳个人所得税=56000*40%-7000=15400
劳务报酬所得、每次收入不超过四千元的,减除费用八百元;四千元以上的,减除百分之二十的费用,其余额为应纳税所得额。劳务报酬所得,适用比例税率,税率为百分之二十。对劳务报酬所得一次收入畸高的,可以实行加成征收。即:应纳税所得额超过2万元至5万元的部分,依照税法规定计算应纳税额后再按照应纳税额加征五成;超过5万元的部分,加征十成。
3.红利收入
根据税法规定,利息、股息、红利所得按每次收入额依照20%税率计算缴纳,但财政部国家税务总局规定:对上市公司分给投资者的分红所得减按10%税率计算缴纳个人所得税
应纳个人所得税=900*10%=90元
已缴80元
,应补10元。
2009-11-03
18:31
补充问题
不好意思,我要补充一下。书上答案说工资收入应纳税额3275元,税款由其所在工作单位的股份制公司在支付工资时扣缴。3275是怎么算出来的?
工资薪金个人所得税计算
(一)每月取得工资收入后,先减去个人承担的基本养老保险金、医疗保险金、失业保险金,以及按省级政府规定标准缴纳的住房公积金,再减去费用扣除额2000元/月,为应纳税所得额,按5%至45%的九级超额累进税率计算缴纳个人所得税。
(二)计算公式:
应交个人所得税
=(工资收入-“个人负担的三险一金”-2000)*适用税率-速算扣除数
(三)工资、薪金不含税收入适用税率表
级数
应纳税所得额(不含税)
税率(%)
速算扣除数(元)
1
不超过500元的部分
5
0
2
超过500元至2000元的部分
10
25
3
超过2000元至5000元的部分
15
125
4
超过5000元至20000元的部分
20
375
5
超过20000元至40000元的部分
25
1375
6
超过40000元至60000元的部分
30
3375
7
超过60000元至80000元的部分
35
6375
8
超过80000元至100000元的部分
40
10375
9
超过100000元的部分
45
15375
(四)李某工资收入应缴个人所得税:
(32600-2000)*25%-1375=6275
元 -
2021-03-30 08:04 符翩翩 客户经理
public float ComputeTax(float income) //income为工资
{
float f_income=income-800; //起征基数为800,同时也可以参数化处理
float[] tax_line={0f,500f,2000f,5000f,20000f,40000f,60000f,80000f,100000f};//计算个人所得税的档次(假设员工为中国国籍,因为国籍不同起征点数不同,税率不同。)
float[] tax_rate={0f,0.05f,0.10f,0.15f,0.20f,0.25f,0.30f,0.35f,0.40f}; //各档次税率
float[] tax_sub={0.f,25f,125f,375f,1375f,3375f,6375f,10375f,15375f}; //采用了简化算法
int i_tax_level=0; //为了计算简便,把工资进行分档
while(f_income>tax_line[i_tax_level]&&i_tax_level<tax_line.length)
{
i_tax_level++;
};
if(i_tax_level>0)
{
float f_tax=tax_sub[i_tax_level-1]+(f_income-tax_line[i_tax_level-1])*tax_rate[i_tax_level]; //算税的公式
return f_tax;
}
else
{
return 0f;
}
} -
2021-03-30 08:01 齐明星 客户经理
import java.io.*;
public class Tax
{
public static void main(String[] args) throws IOException
{
InputStreamReader reader=new InputStreamReader(System.in);
BufferedReader input=new BufferedReader(reader);
System.out.print("工资:");
String s1=input.readLine();
double s=0,x=Double.parseDouble(s1);
double p;
x=x-800;
if (x>=100000)
{
x-=100000;
s+=x*0.45;
x=100000;
}
if (x>=80000)
{
x-=80000;
s+=x*0.40;
x=80000;
}
if (x>=60000)
{
x-=60000;
s+=x*0.35;
x=60000;
}
if (x>=40000)
{
x-=40000;
s+=x*0.30;
x=40000;
}
if (x>=20000)
{
x-=20000;
s+=x*0.25;
x=20000;
}
if (x>=5000)
{
x-=5000;
s+=x*0.20;
x=5000;
}
if (x>=2000)
{
x-=2000;
s+=x*0.15;
x=2000;
}
if (x>=500)
{
x-=500;
s+=x*0.10;
x=500;
}
if (x>=0)
{
s+=x*0.05;
}
p=Double.parseDouble(s1)-s;
System.out.println("应交税额:"+s);
System.out.println("税后金额:"+p);
}
}
我本人一直对个人所得税的计算持怀疑态度。。我也没法确认它是否正确。。只是当作业交(我自己目前也没涉及个人所得税计算的问题
没有满意答案?看看这些问答能否帮助您?
相关百科精选
中宏人寿保... 中宏人寿保险有限公司是国内首...
美亚财产保险有限公司 AIG旗下的美国美亚保险公司凭借“核保严谨、产品创新”的经营理念在市场上始终保持着竞争优势,长期以来保持领先地位、并不断发展壮大。
已有 86485 位专家入驻汇财吧问答
已经帮助 1173961 人解决了问题
