背景:许多公司开具发票,需要根据发票的单价是否含税来计算税额、含税金额、不含税金额
说明:有问题帮忙指教一下
计算公式:
public class UserSet {
public float getPrice() {
return price;
}
public int getNum() {
return num;
}
public float getTaxRate() {
return taxRate;
}
public float getTaxFreeAmt() {
return taxFreeAmt;
}
public float getTaxAmt() {
return taxAmt;
}
public float getTax() {
return tax;
}
float price; //1为含税、2为不含税
int num; //商品数量
float taxRate; //税率
float taxFreeAmt; //不含税金额
float taxAmt; //含税金额
float tax; //税额
public void invoiceWork(){
Scanner scanner = new Scanner(System.in);
if (Test.flag==1){
System.out.println("请输入含税单价:");
}else {
System.out.println("请输入不含税单价:");
}
price = scanner.nextFloat();
System.out.println("请输入商品数量:");
num = scanner.nextInt();
System.out.println("请输入税率:");
taxRate = scanner.nextFloat();
if (Test.flag==1){
//含税发票计算
tax = (num*price)*taxRate/(1+taxRate); //税额
taxAmt = num*price; //含税金额
taxFreeAmt = taxAmt - tax; //不含税金额
}else {
//不含税发票计算
tax = (num*price)*taxRate; //税额
taxFreeAmt = num*price; //不含税金额
taxAmt = tax + taxFreeAmt; //含税金额
}
}
}
主函数:
public class Test extends UserSet {
public static int flag;
public static void main(String[] args) {
UserSet userSet = new UserSet();
System.out.println("======解决一切客户不会计算税额问题======");
System.out.println("请选择开具得发票类型1/2,1:含税 2:不含税");
Scanner scanner = new Scanner(System.in);
flag = scanner.nextInt();
switch (flag){
case 1:{
//含税发票
System.out.println("====含税发票税额、不含税金额计算====");
userSet.invoiceWork();
System.out.println("含税单价:"+userSet.getPrice()+"\n数量:"+userSet.getNum()+"\n税率:"+userSet.getTaxRate()+"\n税额:"+userSet.getTax()+"\n含税金额:"+userSet.taxAmt+"\n不含税金额:"+userSet.taxFreeAmt);
break;
}
case 2:{
//不含税发票
System.out.println("====不含税发票税额、不含税金额计算====");
userSet.invoiceWork();
System.out.println("不含税单价:"+userSet.getPrice()+"\n数量:"+userSet.getNum()+"\n税率:"+userSet.getTaxRate()+"\n税额:"+userSet.getTax()+"\n含税金额:"+userSet.taxAmt+"\n不含税金额:"+userSet.taxFreeAmt);
break;
}
}
}
}
运行结果:
(1)发票单价含税
(2) 发票单价不含税