首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  PHP

一个关于提现手续费问题

  •  
  •   tojike · 103 天前 · 2838 次点击
    这是一个创建于 103 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本人最近在弄一个提现功能,就是微信的企业打款,代码写得差不多了,但是最近遇到了一个一直想不通的提现手续费问题。 产品狗要求提现要收手续费 8%。比如我我的余额就 2 元 1、全部提现 2-20.08=1.84 也就是我最多拿 1.84 元 2、奇葩提现 假如我就提 1.84 , 那么结果是 1.84-1.840.08 = 0.1 最后我的余额会多出 0.1 出来

    问题:
    1、同样是能拿到的都是 1.84 元,为什么一个会多出 0.01 来?好苦恼,想不通。最重要的是:产品狗认为这是 bug。
    2、有没有好的解决方法?或者怎么说服产品狗?
    
    30 回复  |  直到 2018-03-13 23:56:46 +08:00
        1
    tojike   103 天前
    最后那个结果写错了 是 2-( 1.84+1.84*0.08 )=0.01 ,反正就是会多出 0.01 元出来
        2
    sea516   103 天前
    产品智力有问题?
        3
    Tianao   103 天前 via iPhone
    楼主的计算没看懂,不知道是不是精度问题……考虑一下单次提现最低手续费?
        4
    FFLY   103 天前
    2 - (2 * 0.08) = 1.84 ,2 * 0.08 = 0.16
    1.84 - (1.84 *0.08) = 1.6928,1.84 *0.08 = 0.1472

    问题就在进位上啊
        5
    Antonidas   103 天前
    我好奇什么业务会收 8%的提现手续费...
        6
    pkookp8   103 天前 via Android   ♥ 1
    就我看不懂吗。。。。为什么说同样拿到 1.84
    明明一次 1.84,一次 1.69 啊
        7
    3pmtea   103 天前
    第一种情况里,提现人交了(对应于 2 元的手续费),但是实际上只提了 1.84 元,明显提现人亏了
        8
    tojike   103 天前
    @sea516 产品可能是个 zz,但是问题还是得想办法解决,或者想办法说服他

    @Tianao 单次最低手续费这个建议可以,我去提一下 多谢。

    @FFLY 问题就像你说的,很纠结。头大了两天了
        9
    b821025551b   103 天前
    关键点不就是精度问题么。。。。这个主要是产品来定,比分还小的单位是上取整还是下取整。
        10
    sea516   103 天前
    一次提 2 元,一次提 1.84 元 有什么好纠结的?
        11
    pelloz   103 天前   ♥ 3
    提现手续费应该从提出来的钱里面扣除,而不是从剩下的钱里面扣除。在第二种情况,应该这么算:
    提现:1.84
    实际拿到:1.84*0.92=1.69
    余额:2-1.84=0.16
        12
    tojike   103 天前
    @pkookp8 余额是 2 元 的情况下 最做拿 1.84 ,但是提 1.84 就不一样了 1.84*0.08 = 0.1472(0.15 这里四舍五入了) , 2-( 1.84 (提现金额)+0.15 (手续费)) = 0.01
        13
    580a388da131   103 天前
    2 块手续费 0.16
    1.84 手续费 0.1472 四舍五入 0.15
        14
    qiayue   103 天前
    换一种思路就好了,8%相当于平台分成。
    账户余额是分成之前的双方共同所有的钱,只不过大头是用户的,小头是平台的。
    每次用户提现,都需要拿出 8%留给平台。
    比如提现 2 元,平台得到 0.16 元,用户得到 1.84 元。
    就不需要再拿 1.84 去计算 8%了。

    还有另一种情况,假设余额是 2.1 元,那么 8%就是 0.168 元,这个时候就需要你们制定好规则,是用四舍五入(平台得 0.17 ),还是直接取整(平台得 0.16 )。
        15
    tojike   103 天前
    @pelloz 感谢,我感觉自己被绕进去了。应该是按照你说的那样才符合逻辑 :提现手续费应该从提出来的钱里面扣除
        16
    Jarvix   103 天前
    不出意外,功能上线后 1 天内又要改了
        17
    tojike   103 天前
    纠结了两天,感觉自己功力还是不够。不管怎么样感谢大家。
        18
    pkookp8   103 天前 via Android
    @tojike 那就是四舍五入了。。。只算手续费或只算拿到的钱然后四舍五入,另一种用原始金额减一下就没这个问题了
        19
    raphaelsoul   103 天前
    货币计算以分为单位是坠吼的 全整数运算取整可以避免大多数精度问题
        20
    nmdx   103 天前 via Android
    自己看看微信钱包的提现。

    拿我的 195.72 举例子,点击全部提现,提现金额自动填入 195.52 。 小字说明扣除 0.2 元(0.1 %)手续费
        21
    nmdx   103 天前 via Android   ♥ 1
        22
    pagxir   103 天前 via Android
    提现当然是从账号余额扣手续费才合理。比如 ATM 取款手续费,你见过会从你取出来的钱里扣么?况且用户提现 100 块,很自然是希望拿到 100 块,而不是 92。难道你希望用户提了 100,然后再提 8,然后 0.64 一直下去?
        23
    canbingzt   103 天前
    这个是理解问题吧
    1.提现 2 元,到手并不是 2 元
    2.提现 1.84 元,到手 1.84
    这 2 个并不等价

    如果是不从余额里扣除手续费,那么提现 2 元(所有金额)计算手续费应该是
    (2/1.08)*0.08=0.148148 ……,到手 2/1.08=1.851851 ……

    如果是从余额里扣除手续费,那么不能提现所有金额(因为没有余额扣手续费了),计算可提现最大金额是
    2/1.08=1.851851 ……,手续费(2/1.08)*0.08=0.148148 ……
    与上一条相同

    具体规则怎么制定就看你自己了,还有四舍五入还是取整都可以
        24
    scriptB0y   103 天前
    金钱放在数据库里面没有用小数存的,都是用整数存多少分……
        25
    madmanffff   103 天前
    你自己计算 2 块的时候是从提出的 2 块中取手续费的,那提 1.84 的时候肯定是从 1.84 中拿手续费啊,你到手肯定没有 1.84,跟你现在的余额并没有关系。
        26
    tojike   103 天前
    @pagxir 我们产品也觉得提现的手续费从账号余额扣手续费比较合理。但是会出现那个 0.01 的问题

    @canbingzt 我突然发现你的算法是对的,v2 大神果然多,提现 2 元,手续费 8%我算出来的是 1.84 我只是没搞懂 1.08 怎么来的,1+0.08 么。数学比较菜,谅解。
        27
    canbingzt   103 天前   ♥ 1
    @tojike
    一共 2 元,全部提现,那么设提现金额是 x,有 x+x*0.08 = 2,可提现最大金额是 2/1.08 ,手续费 2/1.08*0.08
    提现 2 元,不包含手续费,这个比较简单,提现 2 元,手续费 2*0.08=0.16 ,一共 2.16 ,余额需要大于 2.16
        28
    MortyP   103 天前 via Android
    这个就是看手续费是按照提现得到的金额还是提现前的金额来算的吧,你们两种算法把这俩搞混了吧
        29
    cnkuner   103 天前 via Android
    问题在于精度。
    建议产品以 1 元的整倍数提现。
        30
    slince   102 天前
    所以在价格的存取上,单位全部用分,价格的运算也不要直接计算数字,用 https://packagist.org/packages/moneyphp/money 中转下;
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   1727 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 22ms · UTC 11:12 · PVG 19:12 · LAX 04:12 · JFK 07:12
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1