我想在 Visual Basic 中定义一个函数,它计算给定括号中的所得税。输入应该是收入、边际税率、下括号边界和(可选)上括号边界。(对于顶部括号,没有上边界)。
这就是我的做法。首先,我定义了一个“斜坡”函数,如下所示:
Public Function ramp(x)
ramp = (x + Abs(x)) / 2
End Function
这与 IF(x<0,0,x) 基本相同。然后我将税收的函数(荷兰语)定义为
Public Function schijfbelasting(inkomen, ondergrens, bovengrens, tarief)
schijfbelasting = ramp(tarief * (inkomen - ondergrens)) - ramp(tarief * (inkomen - bovengrens))
End Function
这里“inkomen”=收入,“ondergrens”=下括号边界,“bovengrens”=上括号边界,“tarief”=边际税率,输出“schijfbelasting”=指定括号内的税。
这一切都很好,除了我想使用“bovengrens”(上括号边界)可选
Optional bovengrens
在 Matlab 中,我会使用“nargin”(参数数量)函数来执行以下操作:
Public Function schijfbelasting(inkomen, ondergrens, Optional bovengrens, tarief)
If nargin==4
schijfbelasting = ramp(tarief * (inkomen - ondergrens)) - ramp(tarief * (inkomen - bovengrens))
Elseif nargin==3
schijfbelasting = ramp(tarief*(inkomen-ondergrens))
End If
End Function
但是,我不知道 Visual Basic 中有类似于“nargin”的函数。它也可能类似于“如果定义了参数“bovengrens””。有人知道如何解决这个问题吗?提前致谢。
PS我知道我可以通过为顶部括号中的括号“边界”填写一个非常大的数字来使代码“工作”,但我不认为这种优雅的编码。