提问人:SomeUser12345634 提问时间:12/14/2022 更新时间:12/14/2022 访问量:87
如何在python pandas中更准确地划分数字
How to divide numbers more accurately in python pandas
问:
我正在尝试进行计算,将数字除以 0.05,然后截断所有数字。1034.55
如果我在 Windows 和 Android 计算器上执行 1034.55/0.05,它会得到 20691。然而,在 python 中,它给出了:
>>> 1034.55/0.05
20690.999999999996
当我截断小数位时,这比预期的要少一个数字。使用浮点数时,必须有最多 5 位的精度。
我如何在保持性能的同时解决由于浮点精度(?)而导致的舍入问题?我目前正在做chunk["index"] = np.trunc(chunk["num"] / 0.05)
我尝试先将数字乘以 100000 以尝试对整数进行数学运算,但这在性能上增加了太多延迟。我也看到一个模块,但这不会像numpy那么快?import doubles
答:
1赞
gtomer
12/14/2022
#1
要将其四舍五入到最接近的整数,请使用:round()
int(round(num/0.05),5))
0赞
smyril
12/14/2022
#2
您可以使用内置函数将其四舍五入到最接近的整数。round()
或者,您可以使用数学库中的函数(始终为较大数字)和(始终为较小数字)指定它是四舍五入到较大还是较小的数字:ceil()
floor()
from math import floor, ceil
mynumber = floor(mynumber)
mynum = ceil(mynum)
或
import math
mynumber = math.floor(mynumber)
mynum = math.ceil(mynum)
评论
20
0.05