170!接近双倍浮点数的极限:171!会溢出。
但是170!超过300位数字。
因此,没有办法170!可以用浮点数精确表示。
但是,Excel会返回170的正确答案!/ 169 !.
为什么是这样?我希望会出现一些错误,但是会返回一个整数值。Excel是否以某种方式知道如何优化此计算?
如果找到最接近double
170的值!和169 !,它们是
double oneseventy = 5818033100654137.0 * 256;
double onesixtynine = 8761273375102700.0;
相同倍数的两倍。最接近double
它们的商的正好是170.0。
此外,Excel可能会计算170!乘以169!到170年。
威廉·卡汉(William Kahan)撰写了一篇论文,题为“浮点计算中无意义的舍入评估有多无效? ”,他在其中讨论了Excel中发生的一些精神错乱。Excel可能无法准确计算170,而是对您隐藏了现实的麻烦。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句