是否存在与Java的BigDecimal等效的C++?

poi*_*ter 18 c++ bigdecimal

我正在寻找一个可以进行十进制浮点运算的C++类.通过http://speleotrove.com/decimal/查看,可以找到人们编写和未维护的各种类的链接.挖掘decNumber ++的东西让我看到一些电子邮件,表明GCC最终会支持这个功能.(正式名称为ISO/IEC TR 24733)

我正在寻找一些我可以用作浮动或双重替代品的东西,这是其他人在他们自己的项目中使用的东西.希望开源.

谢谢!

编辑:我应该指出,我正在尝试使用它来代表价格.所以我需要精确的小数,而不是巨大的小数.

Kon*_*lph 14

存在一个名为GMP(GNU多精度库)的巨大库,它支持这个并且还有C++绑定,但老实说C++接口有点不稳定和过时.

文档中的一个示例,以下内容创建了一个f至少具有500位精度的浮点数:

mpf_class f(1.5, 500);
Run Code Online (Sandbox Code Playgroud)

  • 与BigDecimal类似,mpf_class采用字符串构造函数.随Ubuntu 10.4一起提供的gmpxx版本使用了部分模板特化,因此将其称为过时可能是一个延伸.我想我可以通过这个来做我的竞标.恭喜你,你得到一个cookie,erhm checkmark. (2认同)

Mar*_*ser 9

随便挑选.那里有很多人.例如,您可以查阅维基百科上列表.


SR_*_*SR_ 5

这个问题有点老了,但是对于其他有同样需求的人来说:Boost.multiprecision可能正是您想要的。

http://www.boost.org/doc/libs/1_57_0/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/cpp_dec_float.html

这是一个任意精度的库,可以处理基于10的小数。