房屋交易在日常生活中非常常见的事情,房屋交易时要额外支付各种税费,按2022年房产交易新政策的规定买房人应缴纳税费包括:
1、契税:首次购房评估额90平(含)内1%、90平-144平(含)内1.5%,超过144平或非首 次3%,买方缴纳。
2、印花税:房款的0.05%。
3、交易费:3元/平方米。
4、测绘费:1.36元/平方米。
5、权属登记费及取证费:一般情况是在200元内。
输入格式:
四个数据,以空格分隔:
1、第几次购房(整数)
2、房款(整数/单位万元)
3、评估价(整数/单位万元)
4、房屋面积(浮点数/单位平方米)。
例如:1 100 100 90。
输出格式:
契税、印花税、交易费、测绘费(以元为单位),以空格分隔。例如:10000.0 500.0 270.0 122.4
输入样例:
在这里给出一组输入。例如:
1 100 100 90
输出样例:
在这里给出相应的输出。例如:
10000.0 500.0 270.0 122.4
注意事项
此题要注意的是——Java中有类型自动提升的规则,
int
类型会自动提升为double
类型,因此乘法运算时,assessmentPrice * 10000
的结果会自动转换为double
类型。但是,将double
类型的结果赋值给float
类型的变量(如deedTax
)时,可能会丢失精度。
为了解决这个问题,可以通过将结果强制转换为float
类型来避免数据丢失,如下所示:
deedTax = (float) (assessmentPrice * 10000 * 0.01);
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int purchaseTimes = sc.nextInt();
int housePrice = sc.nextInt();
int assessmentPrice = sc.nextInt();
float houseArea = sc.nextInt();
float deedTax, steampTax, transactionFee, surveyFee;
if (purchaseTimes == 1)
{
if (houseArea <= 90)
{
deedTax = (float)(assessmentPrice * 10000 * 0.01);
}
else if (houseArea <= 144) {
deedTax = (float)(assessmentPrice * 10000 * 0.015);
}
else {
deedTax = (float)(assessmentPrice * 10000 * 0.03);
}
}
else {
deedTax = (float)(assessmentPrice * 10000 * 0.03);
}
steampTax = (float)(housePrice * 10000 * 0.0005);
transactionFee = houseArea * 3;
surveyFee = houseArea * 1.36f;
System.out.println(deedTax + " " + steampTax + " " + transactionFee + " " + surveyFee);
}
}