Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.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++ 为什么从文件中读取浮点数会得到四舍五入的输出?_C++ - Fatal编程技术网

C++ 为什么从文件中读取浮点数会得到四舍五入的输出?

C++ 为什么从文件中读取浮点数会得到四舍五入的输出?,c++,C++,我有一个文件和两个输入,如下所示: 34.800287000 0.077352000 我正在读取一个文件(通过getline然后定义stringstream)并将其保存在我的类变量中,这两个变量都定义为double。然而 当我检查变量时,我看到: 34.8003 0.077352 编辑:我正在使用cout检查变量 为什么呢 谢谢。标准IO streams类对其精度有限制,可以在运行时进行自定义。默认情况下,我认为它是六个位置,这与您获得的以上输出相匹配。如果要提高精度,可以使用setprecis

我有一个文件和两个输入,如下所示:

34.800287000 0.077352000

我正在读取一个文件(通过getline然后定义stringstream)并将其保存在我的类变量中,这两个变量都定义为double。然而 当我检查变量时,我看到:

34.8003 0.077352

编辑:我正在使用cout检查变量

为什么呢


谢谢。

标准IO streams类对其精度有限制,可以在运行时进行自定义。默认情况下,我认为它是六个位置,这与您获得的以上输出相匹配。如果要提高精度,可以使用
setprecision
流操纵器:

double myValue = /* ... */
cout << setprecision(12) << myValue << endl; // Print with higher precision
double myValue=/**/

cout标准IO streams类对其精度有限制,可以在运行时进行自定义。默认情况下,我认为它是六个位置,这与您获得的以上输出相匹配。如果要提高精度,可以使用
setprecision
流操纵器:

double myValue = /* ... */
cout << setprecision(12) << myValue << endl; // Print with higher precision
double myValue=/**/

cout使用cout打印时,您的数字将四舍五入。如果您想看到更多的小数,请使用标题
std::setprecision
中的
iomanip

使用cout打印时,您的数字将四舍五入。如果您想看到更多的小数,请使用标题中的
std::setprecision
iomanip

如何检查变量?Cout将在输出前自动四舍五入请记住,
double
不能包含
34.800287000
double
使用固定的二进制表示法(通常为64位),而不是可变长度的十进制表示法
std::ifstream
对十进制进行了近似转换,
std::cout
将给出十进制近似值;这两种方法通常都不精确。如何检查变量?Cout将在输出前自动四舍五入请记住,
double
不能包含
34.800287000
double
使用固定的二进制表示法(通常为64位),而不是可变长度的十进制表示法
std::ifstream
对十进制进行了近似转换,
std::cout
将给出十进制近似值;这两种方法通常都不精确。有没有一种方法可以使setprecision()不仅用于您提到的一个变量,而且用于我程序的每个变量。这会满足我的要求:我相信您会发现,如果您在输出流上设置精度(cout)它将在流的生命周期中保持这种状态,直到设置为其他状态。有没有一种方法可以让setprecision()不仅用于您提到的一个变量,而且用于我程序中的每个变量。这将满足我的要求:我相信您会发现,如果您在输出流(cout)上设置精度,它将在流的生命周期内或在设置为其他变量之前保持该精度。实验