想要计算18位数,但只计算到6位?使用long double但仍然无法正常工作

时间:2013-09-30 04:13:01

标签: c++ floating-point precision long-double

我已经编写了一个使用Gregory Leibniz公式估算pi的程序,但是它不会计算到18个小数点。它最多只能计算5个小数点。有什么建议吗?

2 个答案:

答案 0 :(得分:4)

使用

cout.precision(50);

提高打印输出的精度。这里50是输出中的小数位数。

答案 1 :(得分:0)

设置cout.precision仅影响输出上的数字位数,而不影响数字的实际精度。任何超过该类型精度的东西都会被0填充。

Float有23位尾数,所以它只能精确到6-7位数。 Double的准确率约为15-16位。

要获得更高的精度,唯一的方法是使用big number库或为自己编写一个库。