我在 Mathematica 8 中遇到了一个看似错误的问题。我在网上找不到任何与之相关的内容,但我承认我不太确定要搜索什么。
如果我运行这个语句:
0.05 + .10 /. {0.15 -> "pass"}
1.04 + .10 /. {1.14 -> "pass"}
1.05 + .10 /. {1.15 -> "pass"}
1.15 /. {1.15 -> "pass"}
我得到这个输出:
pass
pass
1.15
pass
我只是忽略了一些事情吗?
Edit:阅读下面有用的讨论后,我更改了调度表以使用 Which 语句:
f[x_] := Which[x == 1.05, -1.709847, x == 1.10, -1.373823,
x == 1.15, -1.119214, x == 1.20, -0.9160143, x == 1.25, -0.7470223, x == 1.30, -0.6015966]
这似乎可以解决问题。
欢迎来到机器精度的世界。如果您更仔细地检查 1.05 +.10 和 1.15,您会发现它们并不完全相同:
1.05 + .10 // FullForm
==> 1.1500000000000001`
1.15 // FullForm
==> 1.15`
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)