【发布时间】:2023-04-09 08:40:01
【问题描述】:
我正在尝试开发一个程序来计算给定基本工资的税款,我相信鉴于我拥有的所得税表的格式,应该有一个公式或算法来计算给定基本工资的税款.以下是所得税表的样本格式。我可以进行查找,但我认为算法或公式可能是最好的方法。
Annual Salary Monthly From Ranges To Tax Due
18,000.00 0.00 1,500.00 0.00
18,060.00 1,500.01 1,505.00 0.25
18,120.00 1,505.01 1,510.00 0.50
18,180.00 1,510.01 1,515.00 0.75
18,240.00 1,515.01 1,520.00 1.00
.....
27,960.00 2,325.01 2,330.00 41.50 --last line of first format
28,020.00 2,330.01 2,335.00 41.83 -- start of second format
28,080.00 2,335.01 2,340.00 42.33
28,140.00 2,340.01 2,345.00 42.83
我能够在我的程序中找到第一部分的公式及其工作发现,但我无法使第二部分工作。
第一部分的公式如下:
每 5.00 或超过 1500 部分的税为 0.25。所以我正在使用
Ceil((monthly−1500)/5) * 0.25
我已经为第二种模式尝试过类似的方法,但到目前为止它不起作用
【问题讨论】:
-
假设此税表可能每年左右更改阈值,我不会对当前结构和值进行编码。相反,我会向后遍历表格,直到找到范围超过薪水的条目,然后查找税金
-
你是说要每 5 到 1500 加 0.25,然后应该加 1500 以上的 1/4?例如,800 将是 800/5*0.25 = 40。1800 = 1500/5*0.25 + 300*0.25 = 75 + 75 = 150 ?
-
@LasseV.Karlsen 您必须要求进行澄清,这总结了这种方法有什么问题。当前的税表可能有两个部分。未来几年可能会有一个或四个,或每个波段的非线性税收增加,或其他一些变化。我认为寻求生成算法答案只会增加灵活性,如果有任何性能原因不进行查找,我会吃掉我的帽子。
-
@Paul 这个税表可能暂时不会改变。另外,如果文件有数百万行,您不认为这在计算上可能会很昂贵。
-
@fanbondi,根据我的经验,税收会发生变化。我不相信任何现实的税收制度都会有每 5 美元到 500 万美元的界限。无论如何,更好的查找会将查找时间减少到微不足道的事情(请参阅安德烈的回答)