如何使用cin读取double的整个值?

fre*_*inn 5 c++ double

long double m;
cout << "enter double: "; cin >> m;
cout << "m = " << m <<endl;
Run Code Online (Sandbox Code Playgroud)

输入:

输入double:1.546640625

输出:

m = 1.54664

我必须转换成带有点的二进制文件,当我读取像2.359375000这样的数字时

输出:

m = 2.35938

它有效,但我认为问题是1.546640625中的零

izo*_*ica 12

你已经阅读了double的全部价值.问题出在cout上.默认情况下,它将值舍入为小数点后的6位数.

要设置精度COUT用途,使用setprecision<iomanip>:

#include <iostream>
#include <iomanip>

using namespace std;

int main() {
    long double d;
    cin >> d;
    cout << setprecision(10) << d << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)