关于精度的问题
mathematica吧
全部回复
仅看楼主
level 5
对于浮点型的数,在设置精度后为什么会这样?对于高精度的计算,有没有避免的方法?
In[425]:= a = 81.136;
precision = 20;
SetPrecision[a, precision]
SetAccuracy[a, precision]
Out[427]= 81.
13599999999
9995680
Out[428]= 81.
13599999999
99956799
2021年10月15日 08点10分 1
吧务
level 15
这一点差异一般不足以引发问题。真在意的话一开始就别用小数,写成 81136×10^-3 就没这事了。
2021年11月06日 04点11分 2
我们做高精度计算会用到三十多位的有效数字计算,,,,出现这种情况让我有点怀疑mma计算的准确性了。。。。
2021年11月07日 01点11分
吧务
level 13

原始数据被自动识别为机器精度了
一般用机器精度应该都会产生这样的结果
Ceiling[0.07*100]/100 // N
(*0.08*)
强行设置为无限精度,也只是准确表示机器精度值
SetPrecision[0.07, Infinity]
你可以将精确度指定为20
a=81.136`20
2021年11月07日 04点11分 3
1