
最近在对支付宝的接口,支付宝收的手续费竟然没有给你,要自己算!(吐槽一下) 问客服说是手续费计算保留到分四舍五入 然后就碰到了如下问题 其中有一笔计算结果是 0.00494 元手续费,我按四舍五入得到的结果是 0,然而支付宝那边计算结果是 0.01,我就好奇这是怎么四舍五入的啊.....
from decimal import Decimal, ROUND_HALF_UP Decimal('0.00494').quantize(Decimal('0.00')) # 结果是 0.00 Decimal('0.00494').quantize(Decimal('0.00'), ROUND_HALF_UP) # 结果是 0.00 是不是我哪里弄错了? 谁能给我解释一下呀,不胜感激
1 ranleng 2018 年 10 月 18 日 via Android 因为至少要有 1 分的手续费这样吧 |
3 Zzdex 2018 年 10 月 18 日 via iPhone 0.0049 0.005 0.01 2333 |
5 liuxingpu OP 有没有支付宝的大佬来解释一下? |
6 sjw199166 2018 年 10 月 18 日 根据小数点后面的所有的位数 每一位往前四舍五入呗 到 2 位的时候 break 掉 2 楼解释的多明白。。 |
7 kkhaike 2018 年 10 月 18 日 我觉得 ranleng 说的合理,大于 0,小于 0.01 ,按 0.01 |
9 liuxingpu OP |
13 GoLand 2018 年 10 月 18 日 via iPhone 你这个直接( 0,0.01 ]的就算 0.01 ,其他的照常四舍五入不行么。 |
16 wlsnx 2018 年 10 月 18 日 不会是你算出的手续费本来就有误差吧 |
17 dairoot 2018 年 10 月 18 日 round(Decimal('0.00494').quantize(Decimal('0.000')), 2) |
18 inoki 2018 年 10 月 18 日 via Android 一般涉及到钱的不都是以分为单位的整数嘛拙见 |
19 luckyc 2018 年 10 月 19 日 via iPhone 手续费小于 0.01 就设置成等于 0.01 大于 0.01 再四舍五入取值。 |
20 PulpFunction 2018 年 10 月 19 日 ‘我一再强调,只能多收,不能少收。说吧,多收了多收’ |
21 liuxingpu OP |