如何将精度设置为C 的100位数字

How do I set precision to 100 digits in c++?

本文关键字:100位 数字 设置 精度      更新时间:2023-10-16

我很抱歉,我有一个非常基本的问题。

这是一个非常简单的计算,一个整数(22)除以另一个整数(7)。我希望C 代码在代码内的实际计算和输出值中的实际计算中精确使用100位精度。使用Maple程序,我得到

restart;
Digits:=100;
evalf(22/7);

我得到的答案是

3.142857142857142857142857142857142857142857142857142857142857142857142857142857142857142857142857143

,但我使用以下C 代码并获得不同的答案。这只是在几个实际数字之后添加了零,这是完全错误的。以下是我的C 代码。

#include <iostream>
 using namespace std;
 int main()
 {
     cout << fixed;
     cout.precision(100);
     cout << "22/7 = " << 22/(double)(7) << endl;
     return 0;
}

使用枫树程序,我得到

Maple是一个特殊的工具,它旁边是:

支持任意精度

的符号和数字计算

在另一侧C 是一种通用编程语言。作为一种语言,它支持浮点算术的精度有限。您不能期望在那里投掷任意精度,并期望在进入枫木时会产生相同的结果。因此,您需要使用任意的精确库(不是标准C 的一部分)或切换到通过设计支持它的其他语言。