首页 > 解决方案 > 如何提高 C++ 中双精度的精度?

问题描述

我想提高双精度。看起来 double 和 float 的精度是一样的。(对于我未来的 C++ 计划,我还需要更高的精度。)

我不知道该怎么做。

#include <iostream>

using namespace std;

int main()
{
    double fraction1 = 0.123467890123456789;
    float fraction2 = 0.123467890123456789;
    cout << fraction1 << endl;
    cout << fraction2 << endl;
    return 0;
}

这产生:

0.123468
0.123468

我本来期望达到 10 位或更多位的精度。

标签: c++

解决方案


不,您正在观察 a 的默认输出精度ostream,而不是 a 的精度double

用于std::setprecision获得所需的输出。


推荐阅读