防止对数学表达式进行舍入



使用 Mathematica 时,给出以下表达式:

In[429]:= 100*(1 - 0.002)^5*(1 - 0.005)*(1 - 0.006)*3.5
Out[430]= 342.7127137548418

我尝试使用N[],SetPrecision[]等,但无法获得根据网站342.712713754841762864的实际值。

如何防止 Mathematica 对结果进行四舍五入?

Idk,你是否已经找到了答案,但你可以FullForm你的表达。我真的很震惊,在我的情况下,准确计算4852.95 + 14000是如此困难。

你可以,但不应该。

如果要提高结果的精度,可以在所有十进制数上输入123.456`digits of precision,以设置它们的精度及其结果。这会将您的原始表达式转换为诸如 100*(1 - 0.002`25)^5*(1 - 0.005`25)*(1 - 0.006`25)*3.5`25 之类的东西,从而给出342.7127137548417628640000的预期结果。但请注意,Mathematica 主要适用于显式有理数,例如 1/200 ,以获得精确的结果。但是,除了精度之外,我没有看到浮点值固有的其他问题。

相关内容

  • 没有找到相关文章

最新更新