今天我有一个问题,关于使用
Python中的条件来舍入数字.
我正在做一个销售网站,我的客户希望根据结果将价格从美元兑换成哥伦比亚比索来收集价格.例如:200美元到COP导致353990 COP,它应该四舍五入到359000.
他已经在Excel中实现了一个功能:
=IF(F4>=10000000,(ROUNDUP(F4,-6)-100000),IF(F4>=1000000,(ROUNDUP(F4,-5)-10000),IF(F4>=100000,(ROUNDUP(F4,-4)-1000),IF(F4>=10000,(ROUNDUP(F4,-3)-1000),IF(F4>=0,(ROUNDUP(F4,-3)))))))
我需要做同样的事情,但在Python中,我不知道如何做到这一点.
谢谢你的帮助!
最佳答案
def round_up(value, multiple):
return multiple * math.ceil(float(value) / multiple)
def digits(value):
return int(math.log(value, 10)) + 1
def round_price(value):
if value < 10000:
return int(round_up(value, 1000))
d = digits(value)
new_value = int(round_up(value, 10 ** (d - 2)))
new_value -= 10 ** (d - 3)
return new_value