python-根据舍入等效值评估大 float

标签 python

我有一个这样的文件,

...

3.999999000000e-003 1.2344325e-003

4.000000000000e-003 1.2342323e-003

...

我试图找到仅等于 0.004(4.000000000000e-003 长格式)的值,但我不想输入长格式,因为精度可能会因文件而异。我必须事先进行行分割,所以我还必须先将其从字符串转换。

如何在 python 中计算类似 0.004 == 4.000000000000e-003 的值?

我目前一直在尝试类似的东西,但显然它不起作用

        line_tmp = line.split()

        if float(line_tmp[0]) == 0.004:
            print(line_tmp[0])
            print(float(line_tmp[0]))

最佳答案

如果您需要比较两个 float ,您应该检查它们之间的差异是否非常小。像这样的东西:

if abs(number1 - number2) < 1e-8:
    # Do something

关于python-根据舍入等效值评估大 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9492392/

相关文章:

python - cv2.matchTemplate 在图像中发现错误的模板

python - python 中用于 psycopg2 连接的长查询的 SQL 格式化示例

python - 在 Python 中将 Sparse.LIL 矩阵保存到 csv

python - Plone 插件,命令行程序的 Web 界面开发

python - 用python求解超越方程组

python - str.encode()提供意外结果

Python视频系统未启动

python - 我如何遍历对象的字段?

python - 在 python 中实际使用的 SyntaxError 内置函数是什么?

python - Django Admin - 禁用 FK 字段更新