我需要取一个浮点数。例如4.00011。当数字为时,内置函数< code>round()总是向上舍入
def my_round(x, precision = 0, which = "up"):
import math
x = x * 10 ** precision
if which == "up":
x = math.ceil(x)
elif which == "down":
x = math.floor(x)
x = x / (10 ** precision)
return(x)
< code>my_round(4.00018,4," up")
my_round(4.00018,4,"down")
我找不到这个问题(为什么?)。还有我错过的其他模块或功能吗?如果有一个具有基本(修改)功能的大型库,那就太好了。
编辑:我不谈整数。
查看我在这篇SO帖子中的回答。您应该能够通过将ground
替换为圆
来轻松修改它以满足您的需要。
如果有帮助,请告诉我!
编辑我只是感觉到了,所以我想提出一个基于代码的解决方案
import math
def round2precision(val, precision: int = 0, which: str = ''):
assert precision >= 0
val *= 10 ** precision
round_callback = round
if which.lower() == 'up':
round_callback = math.ceil
if which.lower() == 'down':
round_callback = math.floor
return '{1:.{0}f}'.format(precision, round_callback(val) / 10 ** precision)
quantity = 0.00725562
print(quantity)
print(round2precision(quantity, 6, 'up'))
print(round2precision(quantity, 6, 'down'))
这产生
0.00725562
0.007256
0.007255