我正在尝试使用if循环('因为这就是我所知道的)计算税收分析(PAYE),第一个和最后一个循环工作正常,但为第二个、第三个和第四个循环返回 0。
我尝试对输入变量进行四舍五入,它可以工作,但我得到了不被接受的错误小数。
import numpy
#TAXABLE = 200333.33
#TAXABLE = 282645.83
#TAXABLE = 65203.83
#TAXABLE = 133364.58
#TAXABLE = 20495.83
#TAXABLE = 147083.33
#TAXABLE = 10328.83
#TAXABLE = 223908.33
#TAXABLE = 3504.75
#TAXABLE = 890.33
TAXABLE = 119270.83
TAX_INCOME = TAXABLE
#TAX_INCOME = round(TAXABLE)
#TAX_INCOME
TAX=0
#PAYE = 25000
LIMIT1 = 25000
LIMIT2 = 25000
LIMIT3 = 41666.67
LIMIT4 = 41666.67
LIMIT5 = 133333.34
#PERCENTAGE
RATE1=0.07
RATE2=0.11
RATE3=0.15
RATE4=0.19
RATE5=0.21
RATE6=0.24
#CALCULATION
if TAX_INCOME <= 25000:
TAX1=0
TAX = TAX_INCOME*RATE1 + TAX1
if TAX < (0.01*TAXABLE):
TAX = (0.01*TAXABLE)
if TAX_INCOME in numpy.arange(25001,50001):
TAX1 = LIMIT1*RATE1
TAX2 = (TAX_INCOME-25000)*RATE2
TAX = TAX1 + TAX2
if TAX_INCOME in numpy.arange(50001,91667.67):
TAX1 = LIMIT1*RATE1
TAX2 = LIMIT2*RATE2
TAX3 = (TAX_INCOME-50000)*RATE3
TAX = TAX1+TAX2+TAX3
if TAX_INCOME in numpy.arange(91667.67, 133334.33):
TAX1 = LIMIT1*RATE1
TAX2 = LIMIT2*RATE2
TAX3 = LIMIT3*RATE3
TAX4 = (TAX_INCOME-91666.67)*RATE4
TAX = TAX1+TAX2+TAX3+TAX4
if TAX_INCOME in numpy.arange(133334.34, 266667.68):
TAX1 = LIMIT1*RATE1
TAX2 = LIMIT2*RATE2
TAX3 = LIMIT3*RATE3
TAX4 = LIMIT4*RATE4
TAX5 = (TAX_INCOME-133333.34)*RATE5
TAX = TAX1+TAX2+TAX3+TAX4+TAX5
if TAX_INCOME>=266667.68:
TAX1 = LIMIT1*RATE1
TAX2 = LIMIT2*RATE2
TAX3 = LIMIT3*RATE3
TAX4 = LIMIT4*RATE4
TAX5 = LIMIT5*RATE5
TAX6 = (TAX_INCOME-266666.68)*RATE6
TAX = TAX1+TAX2+TAX3+TAX4+TAX5+TAX6
#result = format(TAX)
result = "{0:.2f}".format(TAX)
result
我预计:
- 65203.83 返回 6780.57;
- 133364.58返回18673.23;
- 147083.33返回21554.17
但我的代码一直返回 0.00。