当输入在Mathematica中包含浮点时获得任意精度

时间:2011-06-28 19:59:23

标签: wolfram-mathematica

我正在尝试以任意精度计算Mathematica中的中心矩。然而,使用不同的输入格式,我得到了不同的结果。

显然,第一时刻应该是0精确,但Mathematica并没有给我0表示浮点输入。有没有办法强迫它使用任意精度?我的输入是一个CSV文件,浮点数如xxx.xx

CentralMoment[{3,0.7}, 1]=0.x10^-16 // very close to 0, but not exact
CentralMoment[{3,7/10}, 1]=0
//You could try the above with Wolfram alpha online

2 个答案:

答案 0 :(得分:5)

在这里,它做到了这个

CentralMoment[{3, 0.7`16}, 1]
(*
-> 0.\[Times]10^-16
*)

,而

CentralMoment[{3, 0.7}, 1]
(*
-> 0
*)

所以可能是因为它有些精确地读取它们。现在,自

CentralMoment[{3, SetPrecision[0.7`12, \[Infinity]]}, 1]
(*
-> 0
*)

我想你想要的是SetPrecision

答案 1 :(得分:1)

您还可以使用Rationalize将浮点数转换为精确分数。 Rationalize[0.7]将返回7/10。这是使用精确数字(与任意精度不完全相同,通常被理解为能够使用任意大但仍然有限的精度 - 如在acl的答案中那样)。