Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用cin读取double的整个值? 长双m; cout>m; 难道你已经看完了双精度的全部数值了吗。问题在于cout。默认情况下,它将值舍入到小数点后的6位_C++_Double - Fatal编程技术网

C++ 如何使用cin读取double的整个值? 长双m; cout>m; 难道你已经看完了双精度的全部数值了吗。问题在于cout。默认情况下,它将值舍入到小数点后的6位

C++ 如何使用cin读取double的整个值? 长双m; cout>m; 难道你已经看完了双精度的全部数值了吗。问题在于cout。默认情况下,它将值舍入到小数点后的6位,c++,double,C++,Double,要设置cout使用的精度,请使用中的setprecision: #包括 #包括 使用名称空间std; int main(){ 长双d; cin>>d; 它是否读取了整个值。问题在于如何显示它。现在有更多信息问题不是零。值将完全存储(取决于数据类型准确存储该值的能力)。问题是,默认情况下,输出限制为小数点后的一小部分,但您可以按照下面的答案进行更改。我试图取m的小数部分,但不起作用long double m,p_decimal,;int p_entera;p_decimal=(long doubl

要设置cout使用的精度,请使用
中的
setprecision

#包括
#包括
使用名称空间std;
int main(){
长双d;
cin>>d;

它是否读取了整个值。问题在于如何显示它。现在有更多信息问题不是零。值将完全存储(取决于数据类型准确存储该值的能力)。问题是,默认情况下,输出限制为小数点后的一小部分,但您可以按照下面的答案进行更改。我试图取m的小数部分,但不起作用
long double m,p_decimal,;int p_entera;p_decimal=(long double)m-p_entera;
p_entera stores
p_entera=(int)m、 
请参见他的编辑。这确实解决了问题,但使用不同的输入(您不知道精度)这是行不通的。你基本上依赖于他的数字有10位。如果你把精度设置得更高,它就不会是同一个数字。-@LuchianGrigore我只是在演示如何提高精度,从来没有标准测试过10就足够了。我试图指出的是,不是输入导致了问题。我总结了我同意J99对这个问题的评论,并且相信我给出的答案就是他想要的。@freinn什么是p_entera?我的意思是你如何计算它?
long double m;
cout << "enter double: "; cin >> m;
cout << "m = " << m <<endl;
#include <iostream>
#include <iomanip>

using namespace std;

int main() {
    long double d;
    cin >> d;
    cout << setprecision(10) << d << endl;
    return 0;
}