我正在写一个程序,在其中我需要以非常高的精度存储数字(在10^-10
附近),然后进一步使用它们作为参数( create_bloomfilter ([yet to decide the type] falsePositivity, long expected_num_of_elem)
)。
我能得到的最高精度是double
(10^-6
附近的东西),这是不够的。
我们如何在c中存储更高精度的数字?
发布于 2012-06-20 15:16:28
试试GNU MPFR library和GNU GMP library
MPFR库是一个C库,用于带正确舍入的多精度浮点计算。
GMP是一个用于任意精度算术的免费库,可以对有符号整数、有理数和浮点数进行运算。除了运行GMP的机器中的可用内存所暗示的限制外,对精度没有实际的限制。GMP具有丰富的函数集,并且这些函数有一个规范的接口。
发布于 2012-06-20 15:15:19
long double是否足够?一些实现使用128位长双精度,这应该很容易处理您的需求。
http://en.wikipedia.org/wiki/Quadruple_precision
如果您正在寻找非常强大的产品,请查看MPFR
https://stackoverflow.com/questions/11114548
复制相似问题