給与税率の計算方法


 
#    ,      
#       48  ,        118625 ,       36.1375  。
#       48.0001  ,     140625.3 ,       33.9376  ,       2.1999  。 

#      : kk     :
#         :pp
#       :x1 
#       :x2
#     :f1=pp*x1
#     :f2=pp*x2
#   :gz
#   :sl=(gz-ff)/f2
#     :sl_max(  50% = 0.5)
#      50%, 50%  
#                   (     )
#     :re
   
#    :
class Fixnum
  def rou(n=2)
    self
  end
end
class Float
    def rou(n=2)
        (self*(10.0**n)).ceil / (10.0**n)
    end
end
$pp=2900 #      2900 (   ,         ,       。)
$x1=1.20689655172414 #       :x1 (   ,     3500  )
$x2=11.0 #       :x2,     11 (   ) 
$f1=$pp*$x1 #      :f1=pp*x1
$f2=$pp*$x2 #      :f2=pp*x2


def r(gz)
  #   
  sl=(gz.to_f-$f1.to_f)/$f2.to_f
  sl=sl*(sl*3) if sl >0 
  sl=0 if sl <0
  sl=0.5 if sl > 0.5
  re=gz-gz*sl
  re=$f2 if re > $f2 #                   (     )
  print %Q(#{gz}\t #{sl.rou(4)}\t #{re.rou} 
) end #60 print %Q( \t \t
) 60.times{|x| r(x*200+3000.0) } puts #20 ,2 print %Q( \t \t
) 20.times{|x| r(x*2+3499.0) } # : 3000.0 0 3000.0 3200.0 0 3200.0 3400.0 0 3400.0 3600.0 0.0001 3599.911 3800.0 0.0003 3799.153 4000.0 0.0007 3997.523 4200.0 0.0013 4194.902 4400.0 0.0021 4391.172 4600.0 0.003 4586.212 4800.0 0.0042 4779.905 5000.0 0.0056 4972.132 5200.0 0.0072 5162.773 5400.0 0.009 5351.71 5600.0 0.011 5538.823 5800.0 0.0132 5723.995 6000.0 0.0155 5907.105 6200.0 0.0181 6088.036 6400.0 0.0209 6266.667 6600.0 0.0239 6442.881 6800.0 0.027 6616.558 7000.0 0.0304 6787.58 7200.0 0.034 6955.827 7400.0 0.0377 7121.181 7600.0 0.0417 7283.522 7800.0 0.0459 7442.732 8000.0 0.0502 7598.693 8200.0 0.0548 7751.284 8400.0 0.0595 7900.387 8600.0 0.0645 8045.883 8800.0 0.0696 8187.654 9000.0 0.075 8325.58 9200.0 0.0805 8459.543 9400.0 0.0863 8589.423 9600.0 0.0922 8715.102 9800.0 0.0984 8836.46 10000.0 0.1047 8953.379 10200.0 0.1113 9065.741 10400.0 0.118 9173.425 10600.0 0.1249 9276.313 10800.0 0.1321 9374.287 11000.0 0.1394 9467.227 11200.0 0.1469 9555.014 11400.0 0.1547 9637.53 11600.0 0.1626 9714.656 11800.0 0.1707 9786.272 12000.0 0.179 9852.26 12200.0 0.1875 9912.501 12400.0 0.1963 9966.875 12600.0 0.2052 10015.265 12800.0 0.2143 10057.551 13000.0 0.2236 10093.614 13200.0 0.2331 10123.336 13400.0 0.2428 10146.597 13600.0 0.2528 10163.278 13800.0 0.2629 10173.261 14000.0 0.2732 10176.427 14200.0 0.2837 10172.657 14400.0 0.2944 10161.832 14600.0 0.3053 10143.832 14800.0 0.3164 10118.54 3499.0 0 3499.0 3501.0 0.0001 3501.0 3503.0 0.0001 3503.0 3505.0 0.0001 3505.0 3507.0 0.0001 3507.0 3509.0 0.0001 3509.0 3511.0 0.0001 3510.999 3513.0 0.0001 3512.999 3515.0 0.0001 3514.999 3517.0 0.0001 3516.998 3519.0 0.0001 3518.997 3521.0 0.0001 3520.997 3523.0 0.0001 3522.996 3525.0 0.0001 3524.995 3527.0 0.0001 3526.994 3529.0 0.0001 3528.993 3531.0 0.0001 3530.992 3533.0 0.0001 3532.991 3535.0 0.0001 3534.99 3537.0 0.0001 3536.989 #