【问题标题】:Math with very large numbers using strings使用字符串的非常大数字的数学
【发布时间】:2011-11-08 03:41:04
【问题描述】:

我正在尝试使用字符串来使用字符串对非常大的数字进行数学运算,而无需外部库。

我已经尝试在网上查找但没有成功,我需要加减乘除的函数(如果可能,并且限制为指定的小数位数。)

示例:添加 9,900,000,000 和 100,000,020 应该是 10,000,000,020。

编辑:对不起,我不够具体,但我只能使用字符串。没有 Long,bigInt,任何东西。 只是基本字符串,如果需要,则为 int32。

这不是作业问题!

【问题讨论】:

  • Int64 会这样做。你甚至不需要一个“大数字”。
  • and limited to a specified number of decimal places. 你需要小数支持吗?否则longBigInteger 将被淘汰。
  • 你为什么拒绝 BigInt? “你好,我有一个问题,对象 X 正是为了解决这个问题而设计的。不使用 X 怎么解决这个问题?”
  • @RaymondChen:可能是作业问题。 lpquarx:是作业问题吗?如果是这样,请解释您到目前为止所做的尝试以及您遇到的问题。你能解决字符串中的问题吗,比如添加两位数?
  • 您指定的限制在真实环境中是不常见的。如果人们了解为什么在这种情况下不能使用 BigInteger,也许人们会更愿意提供帮助。

标签: c# string math numbers


【解决方案1】:

你看过BigInteger吗?

【讨论】:

    【解决方案2】:

    如果您使用的是 .NET Framework 4,则可以使用新的 System.Numerics.BigInteger 类,它是一个可以容纳任何整数的整数,直到内存不足为止。

    (顺便说一下,您提供的示例可以使用longSystem.UInt64 计算。)

    【讨论】:

      【解决方案3】:

      您必须先将值转换为位,然后应用您希望的操作。操作后,您应该将位转换回数字。

      【讨论】:

      • 你说的是转换成比特串吗?因为“我只能使用字符串。没有 Long,bigInt,任何东西。只是基本字符串,如果需要,int32。”
      猜你喜欢
      • 2015-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-20
      • 2019-07-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多