如何用乘法运算修改实数值

How to modify the real value with a multiply operation

一个简单的问题:

1) 在Python中使用numpy,如何在没有parisitic decimals的情况下得到以下结果(真值0.6968)? :

>>> 0.67*(1.04)
0.6968000000000001

如果我转换为字符串,我可以找到正确的值:

>>> str(0.67*(1.04))
'0.6968'

2) 顺便说一句,如何控制舍入以系统地获取真实值?我看到带有 Python (and/or Numpy) 的 epsilon 机器大约在 2e-16.

因此,我得出结论,取 16 位小数太小了,这意味着小数点后 16 位或更精确地低于 2e-16 的随机值。

我不想喷但是 Matlab(我也喜欢 Python)不会产生这种错误。

为此使用 %g

x = 0.67*(1.04)
x = '%g'%(x)
print("x:",x)

您的问题与 this post 重复。