
最近在对支付宝的接口,支付宝收的手续费竟然没有给你,要自己算!(吐槽一下) 问客服说是手续费计算保留到分四舍五入 然后就碰到了如下问题 其中有一笔计算结果是 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 13:59:17 +08:00 via Android 因为至少要有 1 分的手续费这样吧 |
3 Zzdex 2018-10-18 14:01:45 +08:00 via iPhone 0.0049 0.005 0.01 2333 |
5 liuxingpu OP 有没有支付宝的大佬来解释一下? |
6 sjw199166 2018-10-18 14:58:06 +08:00 根据小数点后面的所有的位数 每一位往前四舍五入呗 到 2 位的时候 break 掉 2 楼解释的多明白。。 |
7 kkhaike 2018-10-18 15:03:17 +08:00 我觉得 ranleng 说的合理,大于 0,小于 0.01 ,按 0.01 |
9 liuxingpu OP |
13 GoLand 2018-10-18 15:55:46 +08:00 via iPhone 你这个直接( 0,0.01 ]的就算 0.01 ,其他的照常四舍五入不行么。 |
16 wlsnx 2018-10-18 18:35:29 +08:00 不会是你算出的手续费本来就有误差吧 |
17 dairoot 2018-10-18 19:01:46 +08:00 round(Decimal('0.00494').quantize(Decimal('0.000')), 2) |
18 inoki 2018-10-18 23:59:30 +08:00 via Android 一般涉及到钱的不都是以分为单位的整数嘛拙见 |
19 luckyc 2018-10-19 07:27:50 +08:00 via iPhne 手续费小于 0.01 就设置成等于 0.01 大于 0.01 再四舍五入取值。 |
20 PulpFunction 2018-10-19 08:59:38 +08:00 ‘我一再强调,只能多收,不能少收。说吧,多收了多收’ |
21 liuxingpu OP |