两个字符串之间的数学运算



我正在尝试用大小数C++添加减法和乘以数字。

例:

4125487821547.87879845215584844588 - 354556689.899455132265468

到目前为止,我想到的是我需要将输入保存为字符串,但不确定之后如何继续。

提前感谢帮助 谢谢

你需要一个大的整数类或库。有几种可用的实现,只是为了概述如何使用这样的外部依赖项,这里有一个基于 Boost 的解决方案:

#include <boost/multiprecision/cpp_int.hpp>
using BigInt = boost::multiprecision::cpp_int;

现在,您可以通过将字符串或整数文本传递给构造函数来构造实例,并对这些对象执行所有标准的算术运算,例如

const BigInt i("8787984521558484092344588");
const BigInt j("32308942039402934");
std::cout << i - j << "n";

此类类的一个很好的细节是,它们通常演示具有一个参数的非显式构造函数的少数合理场景之一,即,为了与内置整型的平滑互操作性。例:

int n = 42;
// Use builtin ints like BigInts via implicit BigInt(int) ctor:
std::cout << (i + n)/(j % 3) << "n";

您只需要这些代码段的 Boost 标头,不需要链接。继续使用此库时,请查看文档。

相关内容

  • 没有找到相关文章

最新更新