我正在尝试做一些非常精确的数学计算,非常大/很小的数字。非常大的数字可能有10 - 50位数字,而非常小的数字可能有10 - 50位小数位。C++能做到这一点吗?如果不是,有没有其他编程语言可以处理这种数字?
发布于 2009-12-29 20:50:35
C++可以使用库来实现,例如GNU Multiple Precision Arithmetic库。
发布于 2009-12-29 20:55:06
如果您正确地为这些数字实现了数据类型,那么每种语言都可以处理这些数字。我想你想要一种内置了这样的数据类型的语言。
一般来说,对于C++中的double数据类型的函数,以及在大多数其他语言中,精度对于非常小和非常大的数字都是非常好的。关于这一点,我建议咨询wikipedia,它在那里有很好的解释。
剩下的唯一问题是,双精度数对你来说是否有足够的精度。我猜50位数对它来说太多了,但是你仍然可以实现你自己的数据类型。既然您现在知道了double是如何工作的,那么这应该是可能的。但是,您仍然可以尝试搜索已经实现了这种数据类型的数学库。
发布于 2009-12-29 23:26:17
如果您想做非常精确的算术运算,而不是编写C++代码来做非常精确的算术运算,那么您应该看看Mathematica、Maple和它们的开源竞争对手,比如Maxima、Sage,可能还有其他公司。
https://stackoverflow.com/questions/1974487
复制相似问题