import matplotlib.pyplot as plt
import numpy as np
class IndivTax:
def __init__(self):
self.sa=np.array([0,0,36000,144000,300000,420000,660000,960000])
self.stax=np.array([0,3,10,20,25,30,35,45])*0.01
self.sbase=np.array([0,0,2520,16920,31920,52920,85920,181920])
self.inc=np.array([0,5000,39920,137120,261920,351920,519920,714920])-5000;
由睡前的个睡
def individualtax(self,s):
s1 = s
if s1<=0.001:
return 0.0;
y=np.round(max( self.stax*(s1)-self.sbase),2 )
return y;
由睡后得个睡
def individualtax_rev(self,t):
s1 = t
if s1<=0.001:
return 0;
r=self.stax
rx=1-self.stax
txx=(r*(s1)-self.sbase)/rx
#print(" txx={}",txx)
y=np.max(txx )
return y;
def main2():
xx=np.array([0,35000,40000,41000,41001,144000,300000,50*10000,1000000],dtype=float)
diff=0.0
invt=IndivTax()
for x in xx : #np.arange(0,100*10000,step=2) :
tax0 = invt.individualtax(x - 5000)
inc0=x-tax0
tax1=invt.individualtax_rev(inc0-5000)
x1=inc0+tax1
diff0=np.abs(x1-x)
if diff0>-0.2:
diff =diff0
print("-- x={} tax={} inc0={} ".format(x, tax0, inc0))
print(" x1={} tax1={} inc0={} diff={} ".format(x1, tax1, inc0,diff))
#tax2=individualtaxback_rev(inc0-5000)
#x2=inc0+tax2
#print(" x2={} tax1={} inc0={} ".format(x2, tax2, inc0))
if __name__ == '__main__':
#main()
main2();
个睡与睡前和睡后
最新推荐文章于 2025-12-30 10:45:52 发布
该博客主要展示了如何使用Python实现个人所得税的计算和反向计算。通过`IndivTax`类,定义了不同收入阶段的税率和税基,实现了从收入到税额和从税额回溯到收入的过程。博客通过示例展示了在不同收入水平下,计算税额和验证计算准确性的过程。
1万+





