Python有条件地舍入数字

Cri*_*jas 3 python django numbers rounding

今天我有一个问题,关于使用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中,我不知道如何做到这一点.

谢谢你的帮助!

for*_*all 5

import math
roundup = lambda x: math.ceil(x/1000.0) * 1000
Run Code Online (Sandbox Code Playgroud)

虽然将353990舍入到359000毫无意义.此功能将循环353990到354000.

如果你想要正常的舍入而不是'向上舍入',你只需要使用内置函数round:

round(x, -3)
Run Code Online (Sandbox Code Playgroud)

因此对于具有roundup与round相同的函数签名的泛型

def roundup(x, n=0):
    return math.ceil(x * (10**n)) * (10**-n)
Run Code Online (Sandbox Code Playgroud)