如何测试浮点值的 N 个有效数字?

问题描述 投票:0回答:1

大量代码(例如

numpy
scipy
sklearn
)进行数学处理,结果是浮点或浮点数组。在
unittest.TestCase
中有一种比较浮点值的方法,称为
assertAlmostEqual
但这并不测试有效数字

检查有效数字很重要,因为:

  • 某些值将在 1e-9 的范围内,因此查看小数点后的 N 位数字(即 0.0000000)在这里没有帮助,因为所有最小值都从 1e-9 开始

如何测试浮点值的 N 个有效数字?

python python-unittest
1个回答
0
投票

我发现最好的方法是使用

numpy.testing.assert_approx_equal
,因为它是专门用来测试有效数字的。

示例代码:

import numpy.testing as npt
actual = 1.23456e-9
expected = 1.234567e-9
npt.assert_approx_equal(actual, expected, significant=7)

© www.soinside.com 2019 - 2024. All rights reserved.