如何用乘法运算修改实数值
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 重复。
一个简单的问题:
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 重复。