Office中国论坛/Access中国论坛

标题: 【Access小品】超额累进算法详解 [打印本页]

作者: todaynew    时间: 2012-4-9 19:33
标题: 【Access小品】超额累进算法详解
本帖最后由 todaynew 于 2012-4-9 20:11 编辑

  近些时日见若干版友问及销售额分段提成、水费阶梯计价和个税计算等问题。此类问题实际上皆可归结于超额累进计算问题,于是便觉得有必要详细论述一番这个问题了。

  解决超额累进计算有一个简算的公式,这个公式为:Y=aX+b。

  其中Y是要得到的提成、水费或者个税,X是销售金额、用水量或者应税额,a为X在某个区间内的提成率、阶梯水价或者税率,b为X在某个区间内的速算系数。解决问题的关键就是需要预先通过计算得到所有区间内的速算系数b。那么b该如何计算呢?

  我们先来看看,超额累进计算的最为原始的公式:
[attach]48926[/attach]


  通过这个方程组我们进行如下的推导:
[attach]48927[/attach]


  这样我们就得到了超额累进的简算公式,以及b的求解方法:
[attach]48928[/attach]


  实际上,超额累进公式在解析几何上表现为一条从坐标原点出发向右上角运动的折线轨迹。
[attach]48929[/attach]


  这说明了什么?请注意这个问题!答案是超额累进问题实际上是一个折线方程组求解问题,也就是说找到了超额累进问题的程序求解方法,也就找到了折线方程组的求解方法。我们在真正解决问题之前,所进行的这样一个推导和扩展思维的过程,也许比解决这个问题更有意义。

  当然你也可不必去关心这个坐标系中的折线变化规律,直接去找到用程序来解决超额累进问题的具体办法。这时可以考虑建立一个数据表来存放与超额累进计算有关的基础数据,当然重点仍然在于用一组代码,通过简算公式来计算速算系数,并将其保存在数据表中。解决这个问题后,引用数据表就是一个简单问题了。


[attach]48930[/attach]


[attach]48931[/attach]
作者: aslxt    时间: 2012-4-9 22:12
解释的好。
顺便问一下,在VBA中有没有表示无穷大的数的符号?
作者: todaynew    时间: 2012-4-10 06:37
aslxt 发表于 2012-4-9 22:12
解释的好。
顺便问一下,在VBA中有没有表示无穷大的数的符号?

好像没有吧?
作者: ycxchen    时间: 2012-4-10 10:15
年休假函数如下:
Function rian(qx As Integer) As String
Select Case qx
Case 1 To 10
rian = "5"
Case 11 To 19
rian = "10"
Case 20 To 45
rian = "15"
End Select
End Function
也想用版主的办法来计算


作者: asklove    时间: 2012-4-10 10:22
学习
作者: todaynew    时间: 2012-4-10 11:35
ycxchen 发表于 2012-4-10 10:15
年休假函数如下:
Function rian(qx As Integer) As String
Select Case qx

这不是超额累进吧?
作者: ycxchen    时间: 2012-4-10 15:23
todaynew 发表于 2012-4-10 11:35
这不是超额累进吧?

明白!
作者: wen123456    时间: 2012-5-15 12:56
看了,很好。
作者: 李力军2    时间: 2013-4-16 23:18
很好,有启发
作者: nncchh    时间: 2015-7-20 15:18
学习学习,谢谢分享!
作者: nncchh    时间: 2015-7-20 15:24
学习学习,谢谢分享!
作者: nncchh    时间: 2015-7-20 15:25
学习学习,谢谢分享!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3