有人能用编程语言讲解「税后到手工资」的计算方式吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
llbbzh
V2EX    程序员

有人能用编程语言讲解「税后到手工资」的计算方式吗?

  •  
  •   llbbzh 2022-11-26 17:15:16 +08:00 5331 次点击
    这是一个创建于 1050 天前的主题,其中的信息可能已经有所发展或是发生改变。

    楼主是个大学生,这两天在了解怎么用税前工资计算税后工资,结果搞得晕头转向:

    1. 搞不清大家说的「公司付 X%,个人付 Y%」是以什么为基准计算的,扣完五险一金之后个人所得税又怎么计算?
    2. 既有年终奖又有月基本工资的时候又该怎么算;
    3. 我看到个人所得税速算扣除数就觉得头晕,完全不知道怎么拿来算,而且现在个税制度一直在改革,好像每月的个税比例都不一样,就更难算了;
    4. 每个城市的算法还不太一样!

    有人能用程序语言介绍一下每月或者每年的到手工资怎么算吗?什么语言都行,只要逻辑对就行了。

    比如月的:

    def 计算每月到手工资(base): pass 

    或者年薪总包:

    def 计算到手年薪(base, 年终奖): pass 

    在这里谢谢各位大佬了_(:з」∠)_

    34 条回复    2022-11-28 01:01:30 +08:00
    zcf0508
        1
    zcf0508  
       2022-11-26 17:38:49 +08:00 via Android
    小程序搜 2019 个税工资计算器
    edis0n0
        2
    edis0n0  
       2022-11-26 17:53:44 +08:00
    def 计算每月到手工资(base):
    return random.randint(base*0.01, base*1.10)
    llbbzh
        3
    llbbzh  
    OP
       2022-11-26 17:57:50 +08:00
    @zcf0508 这两天就在玩这玩意,但它也不给源码啊,还是不会算
    wu67
        4
    wu67  
       2022-11-26 17:58:08 +08:00
    税率是按你今年已获得的总税前收入确定的, 就是百分几那个.

    年终跟基本工资没直接关系, 虽然大部分公司的年终是给一个月工资, 但本质上讲他们没联系, 只是数字相同, 或者是月工资上下浮动

    公司交的是统筹, 个人交的入个人账户. 公积金交多少都是进你个人账户(免税的). 养老金 个人在退休前没法动, 你能动的只有公积金, 以广州为例, 可以用租房名义提取, 每月 500 额度. 有合同备案号可以更高额度, 但是我忘了是多少, 因为我的交得少, 所以月 500 够提了.

    计算就是 月薪 = (税前 - 免税额度(租房、房贷、教育等等) - 险金的个人缴纳部分) * 税率.
    年薪一般说的都是税前. 如果要算你自己实际税后年金, 得算你每个月税后再累加
    wu67
        5
    wu67  
       2022-11-26 17:59:48 +08:00
    上面等式写错了, 等式算的是 月薪的税
    14v45mJPBYJW8dT7
        6
    14v45mJPBYJW8dT7  
       2022-11-26 18:06:07 +08:00   5
    先按照税前薪资扣个人部分五险一金,扣完后是应税工资,年终奖和月收入一起计入年应税工资,按照税率表计税,每年进行年度汇算退 /补税

    你需要了解的东西,各城市五险比例(个人交多少比例,公司交的那一部分不需要关心)

    速算扣除数很好理解

    如 1000 以下交 10%的税,1000 以上交 20%的税,当你薪资 1500 时,应交税额是 1000*10%+500*20%=200 ,为了便于计算,可以直接按照 1500*20%计算,此时多算了 1000*10%,这个 100 就是 1000 以上薪资时的速算扣除数
    14v45mJPBYJW8dT7
        7
    14v45mJPBYJW8dT7  
       2022-11-26 18:07:25 +08:00   1
    我都是用这个算,比较符合我的需求

    https://www.xinrenxinshi.com/calculator

    说实话这些内容,等你毕业后,真正赚钱多少影响你时,你自然就会学习了,在学校里确实会感觉这些东西一头雾水
    snw
        8
    snw  
       2022-11-26 18:35:42 +08:00 via Android
    速算扣除数不建议用编程语言来解释,推荐用画图来解释。
    renmu
        9
    renmu  
       2022-11-26 18:37:36 +08:00 via Android
    就是你今年累积工资越高,税率越高
    llbbzh
        10
    llbbzh  
    OP
       2022-11-26 19:51:44 +08:00
    真的很感谢楼上两位答主,这个计算器收藏了
    但网上大家都是这么讲解的,我完全看不懂 所以才说用程序语言
    xinh
        11
    xinh  
       2022-11-26 19:52:48 +08:00 via iPhone
    大学生看看个人所得税法和实施条例就了解了
    billlee
        12
    billlee  
       2022-11-26 20:02:58 +08:00
    都用程序语言了还搞什么速算扣除,直接按定义算就可以了。
    Eathein
        13
    Eathein  
       2022-11-26 20:16:09 +08:00
    小米计算器里有算到手工资的
    zpf124
        14
    zpf124  
       2022-11-26 20:28:24 +08:00   1
    我好些年没看过想过内容了,只记得大概了具体算法和税率忘完了,楼主自己看个大概吧。
    -------
    var 本月税前收入 = 10000 ;
    var 当年税前总收入 += 本月税前收入;
    var 本月扣除社保收入 = 本月税前收入 - 本月税前收入*0.10 ;
    if(本月税前收入 <= 5000) { // 这个不纳税的收入线是多少我忘了,好想和城市最低收入有关。
    return 本月扣除社保收入;
    }
    if(当年税前总收入)
    zpf124
        15
    zpf124  
       2022-11-26 20:37:11 +08:00   1
    按错了....
    -------
    var 本月税前收入 = 10000 ;
    var 本月扣除社保收入 = 本月税前收入 - 本月税前收入* 10%;
    var 当年税前总收入 += 本月扣除社保收入;
    if(本月税前收入 <= 5000) { // 这个不纳税的收入线是多少我忘了,好想和城市最低收入有关。
    return 本月扣除社保收入;
    }
    if(当年税前总收入-纳税最低标准 - 专项扣除 /12 < 120000){
    return 本月扣除社保收入 - (本月扣除社保收入-纳税最低标准) * 10%;
    }
    if(当年税前总收入> 120000){
    return 本月扣除社保收入 - 本月扣除社保收入 * 10% - (本月扣除社保收入-纳税最低标准-10000) *20%;
    }
    zpf124
        16
    zpf124  
       2022-11-26 20:51:25 +08:00   1
    全凭印象了。
    社保大概是固定的 10%,看你们公司给你提交的社保缴纳基数,如果你只算自己收入的,不用管什么公司缴多少,反正基本都和你无关,不论是现在缴还是等你快老死了领的时候。

    个人所得税的话大致和阶梯电价、阶梯水价一个意思。
    收入超过一个阶梯之后,超阶梯的部分税率会更高,然后收入是安当年累计的,第二年报税那几个月开始新一年累计。


    另外社保部分是免税的。社保扣的多,扣税的收入基数就低,税就更少。

    所以比如俩人 A 、B ; A 和老板谈的 2W 全额五险一金,B 也 2W 但最低基数缴五险一金,最终结果就是 A 每月到手 1.5W , 五险扣 4000 ,个税扣 1000 ; B 每月到手 1.6W ,五险 600 , 个税扣 3000 。
    当然公司成本是不同的,A 可能老板一个月得掏 2.3W ,B 只需要 2.1W 。
    Jooooooooo
        17
    Jooooooooo  
       2022-11-26 21:10:45 +08:00
    这个取决你认不认为社保是税.
    ql562482472
        18
    ql562482472  
       2022-11-26 22:28:27 +08:00
    fun 本月到手(int 今年已发全部税前,int 本月税前工资){
    return 本月税前-本月扣税(今年已发全部税前+本月税前)-五险一金
    }
    fun 本月扣税(int 截至本次总收入){
    return 有个速算扣除数表可查
    }

    然后第二年 3 月份会再有一次上年度年度汇算,多退少补
    pengtdyd
        19
    pengtdyd  
       2022-11-26 23:31:54 +08:00
    每个月这点工资,打开电脑编程,不知道够不够电费哦
    andong777
        20
    andong777  
       2022-11-26 23:58:02 +08:00
    这个跟用不用编程语言没啥关系。要是不理解规则,写成 15 楼那样的伪代码你一样看不懂。主要就是应纳税所得额和阶梯税率
    neutrinos
        21
    neutrinos  
       2022-11-27 00:05:00 +08:00 via iPhone
    作业?
    RadishWind
        22
    RadishWind  
       2022-11-27 00:34:59 +08:00
    0.78*n
    Maxvell
        23
    Maxvell  
       2022-11-27 02:33:20 +08:00   1
    之前数学建模的作业就是有关个税的,给你张图片参考下 https://web343434.oss-cn-hangzhou.aliyuncs.com/Quicker_20221126_143051.png
    shuangya
        24
    shuangya  
       2022-11-27 02:44:17 +08:00   1
    年应纳税所得额=年收入-免税,免税包括每月 5000 的起征点、五险一金、专项附加扣除、其他扣除(比如公益捐赠、地方优惠政策等)

    比如月薪 3w ,每月五险一金交 4k ,专项附加扣除有一个每月 1500 的房租,其他没有,一年下来就是 2w*12-(5000*12+4k*12+1500+12)=114000 ,对应到税率表上就是第二档,应交税 114000*10%-2520=8880 ,其中 10%是这一档的税率,2520 是速算扣除数;

    对于单个月的计算方式,和整年计算方式类似;唯一不同是累加制;还是以上面的例子为例:
    * 到 3 月工资时,应纳税所得额=28500 ,属于第一档;应交税(前三月一共):28500*3%=855 。前三月因为没有进入新阶梯,每个月都一样,所以不展开;
    * 到 4 月工资时,应纳税所得额=38000 ,属于第二档;应交税(前四月一共):38000*10%-2520=1280 。因为你前三个月已经交了 855 了,所以这个月需要再交 1280-855=425 元;
    * 到 5 月工资时,应纳税所得额=47500 ;应交税(前五月一共):47500*10%-2520=2230 。因为你前四个月已经交了 1280 了,所以这个月需要再交 2230-1280=950 元;
    * 以此类推;

    另外注意,因为是按年度计算的,所以每月扣的算是“预扣”,最后年度汇算的时候,多退少补;

    -------------------------
    单独回答楼主的几个问题:
    1.1 「公司付 X%,个人付 Y%」是以什么为基准计算的:以公司给你上报的工资是多少计算;比如公司给你报 2w 工资,其中养老保险为单位 19%个人 8%,则你这个月养老保险要交 1600 元;单位交的部分你可以忽略(和你没关系);
    1.2 扣完五险一金之后个人所得税又怎么计算:五险一金属于免税部分,个税只算应纳税所得额,即 原工资-5000-五险一金个人部分-专项附加扣除-其他扣除;
    2.既有年终奖又有月基本工资的时候又该怎么算:目前可以选择分开计算还是并入工资计算;如果分开计算,则年终奖有单独的所得税表,单独计税;如果合并计算,则年终奖+基本工资一起计算;
    3.1 应纳税所得额*税率-速算扣除数=实际交税,比如 36000-144000 这一档是 10%/2520 ,你的应纳税所得额是 114000 ,则应交税 114000*10%-2520=8880
    3.2 每月的个税比例都不一样:因为每个月你的年应纳税所得额都是在涨的,如果进入到新的一个阶梯比例就更高;计算方式是累计计算,不是计算单个月的;即 当月交税=截止当月总应交税-截止上月实际已扣税;
    4. 城市只影响五险一金比例和部分地方优惠政策,其他部分都一样的;一般月工资固定的情况下,五险一金也是固定的,不难计算;
    shuangya
        25
    shuangya  
       2022-11-27 02:44:55 +08:00   1
    @shuangya 打错,不是月薪 3w ,是 2w
    0ZXYDDu796nVCFxq
        26
    0ZXYDDu796nVCFxq  
       2022-11-27 02:54:44 +08:00
    有些特殊情况需要考虑的:
    1. 社保、公积金缴纳都有上限。一般是当地上年度平均月收入的 n 倍为上限
    2. 社保有些公司是按下限或者某些额度缴纳的,不是按实际收入
    3. 公积金的比例并不是固定的
    4. 医保根据年龄缴纳比例不一样
    shuangya
        27
    shuangya  
       2022-11-27 03:02:38 +08:00   1
    伪代码(假设公司给你报的月薪与你实际月薪一致)

    var base = 月薪;
    var rate = xx%; // 五险一金比例
    var other = 0; // 每月其他扣除,如果有的话

    function 获取金额对应的税率(money);
    function 获取金额对应的速算扣除数(money);

    function 计算某月个税(月份) {
    // 如果公司给你报的月薪与你实际月薪不一致,那这里的 base * rate 需要改成 公司上报的月薪 * rate
    var 总应纳税所得额 = (base - base * rate - other) * 月份;
    var 总纳税 = 总应纳税所得额 * 获取金额对应的税率(总应纳税所得额) - 获取金额对应的速算扣除数(总应纳税所得额)
    var 截止上月应纳税所得额 = (base - base * rate - other) * (月份 - 1);
    var 截止上月总纳税 = 截止上月应纳税所得额 * 获取金额对应的税率(截止上月应纳税所得额) - 获取金额对应的速算扣除数(截止上月应纳税所得额);
    return 总纳税 - 截止上月总纳税;
    }

    function 计算到手年薪(分别计税)(base, 年终奖) {
    // 如果公司给你报的月薪与你实际月薪不一致,那这里的 base * rate 需要改成 公司上报的月薪 * rate
    var 总应纳税所得额 = (base - base * rate - other) * 12;
    var 总纳税 = 总应纳税所得额 * 获取金额对应的税率(总应纳税所得额) - 获取金额对应的速算扣除数(总应纳税所得额);

    var 年终奖纳税 = 年终奖 * 获取金额对应的税率(年终奖) - 获取金额对应的速算扣除数(年终奖);

    return 总纳税 + 年终奖纳税;
    }

    function 计算到手年薪(合并计税)(base, 年终奖) {
    // 如果公司给你报的月薪与你实际月薪不一致,那这里的 base * rate 需要改成 公司上报的月薪 * rate
    var 总应纳税所得额 = (base - base * rate - other) * 12 + 年终奖;
    retutn 总应纳税所得额 * 获取金额对应的税率(总应纳税所得额) - 获取金额对应的速算扣除数(总应纳税所得额);
    }
    shuangya
        28
    shuangya  
       2022-11-27 03:04:50 +08:00   1
    @shuangya 更正:下面两个函数不是计算到手金额,是计算个税
    datou
        29
    datou  
       2022-11-27 08:11:21 +08:00
    import 工资条

    const 税后到手工资 = 工资条.实发工资
    CRVV
        30
    CRVV  
       2022-11-27 12:58:35 +08:00   1
    1. 「公司付 X%,个人付 Y%」是以什么为基准计算的,扣完五险一金之后个人所得税又怎么计算?

    比如谈的每月工资 10000 ,个人和公司的 x% 都用这个 10000 来算


    2. 既有年终奖又有月基本工资的时候又该怎么算

    年终奖不用交五险一金,税好像有不同的算法吧我不太确定。


    3. 我看到个人所得税速算扣除数就觉得头晕,完全不知道怎么拿来算,而且现在个税制度一直在改革,好像每月的个税比例都不一样,就更难算了;

    个人所得税的算法是这样的
    五险一金部分不用交所得税,先减掉,比如月薪 50000 ,假设扣完五险一金还有 40000 。
    每个月有 5000 的免税额,就是说这里面有 5000 不用交税,这样还剩 35000 。
    然后有那些租房养娃什么的免税额,比如有 3 个娃 1 个老人,这样又有 5000 不用交税,这样还剩 30000 要交税的收入。
    这样,每个月的 30000 ,叫做应纳税所得额。

    一月,当年的应纳税所得额是 30000 ,税率 3%,交税 900
    二月,当年的应纳税所得额是 60000 ,其中 36000 以下的部分是 6000 税率 3% 就是 180 ,36000 以上的部分是 24000 税率 10% 就是 2400 ,这个月要交税 180+2400=2580
    三月,当年的应纳税所得额是 90000 ,这个月的收入都是 36000 以上的部分,税率 10% 交 3000 的税
    四月,当年的应纳税所得额是 120000 ,这个月的收入都是 36000 以上的部分,税率 10% 交 3000 的税
    五月,当年的应纳税所得额是 150000 ,这个月的收入在 144000 以下的部分是 24000 税率 10% 交 2400 的税,还有 6000 在 144000 以上税率 20% 交 1200 的税,这样一共交 3600 的税
    后面都是这样算下去的。

    这样算需要一个月一个月地累加,有人觉得麻烦,就搞了个速算扣除数。比如第二个月的总数是 60000 ,36000-144000 之间的速算扣除数是 2520 ,60000*10% - 2520 = 3480 就得到了总的税额,再减掉一月的 900 ,得到二月的税是 2580 。
    如果要算一年的税额,直接 30000*12 = 360000 ,税率是 25%,36000*25% = 90000 ,再减掉速算扣除数 31920 ,得到全年的个人所得税是 58080 。这样比一个月一个月加上来要少按几下计算器,如果用 Excel 来算我觉得这东西完全没必要。

    因为工资是按月发的就每个月都这么算,但如果在 10 月 31 日离职了,后面两个月没有工资,但免税的额度还在,全年的应纳税所得额就变成了 30000*10 - (5000+5000)*2 = 280000 ,但是在 10 月已经交了 300000 对应的税,这样第二年就可以申报把多交的 20000*20% = 4000 的税钱退回来。这个情况我的理解是这样,但我也没操作过,不保证正确。


    4. 每个城市的算法还不太一样!

    五险一金不一样,差别不会很大,税是一样的
    Proletariused
        31
    Proletariused  
       2022-11-27 13:01:30 +08:00
    julyclyde
        32
    julyclyde  
       2022-11-27 16:42:14 +08:00
    @llbbzh 如果某一项看不懂,可以有针对性的问
    如果“完全”看不懂……我想你大概用不上这个
    llbbzh
        33
    llbbzh  
    OP
       2022-11-27 18:25:07 +08:00
    @Maxvell @zpf124 非常感谢两位兄弟!!正好就是我非常想要的答案!!会认真看的!
    Maxvell
        34
    Maxvell  
       2022-11-28 01:01:30 +08:00
    @llbbzh 补充一下:总工资=年工资+年终奖
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2732 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 09:13 PVG 17:13 LAX 02:13 JFK 05:13
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86