计算出最大10e130结果的巨大数字

时间:2015-11-28 16:08:30

标签: c# math

我想计算2个数字。让我们说它们是Double类型。如果上限必须小于10e130(10到130的幂),我如何对它们求(n1 + n2)(n1 * n2)进行求和。我省略了解析等所涉及的事情。我认为它们都是正确的大数字。我不知道如何实现这一点。

1 个答案:

答案 0 :(得分:1)

由于Double值(通常)的范围大于1.0E308左右(只需打印出DBL_MAX或DBL_MAX_10_EXP以查看精确值,假设您使用的是C),您的值为(10 * e)^(103)约为5.4e147,应该很容易在加法或乘法的范围内。现在,如果你需要将3个这样的数字相乘,你就会遇到问题,你可能会面临这些问题

  • 在日志空间中工作或
  • 通过除以某些来重新缩放所有数字 很大的价值(基本上是自己跟踪指数)。

如果没有进一步的申请细节,我无法建议您做哪些事情。 (顺便说一句,因为可观察宇宙中的光子数量就像1.0e90,这些几乎是非物质上的大值,除非这是某种数学事物。)