int main () {
double* pvalue = NULL; // Pointer initialized with null
pvalue = new double; // Request memory for the variable
*pvalue = 29494.99; // Store value at allocated address
cout << "Value of pvalue : " << *pvalue << endl;
delete pvalue; // free up the memory.
return 0;
}
输出:
29495
为什么输出
29495
?当我将值更改为
29494.4344
时,为什么输出29494.4
?
最佳答案
29494.99
出于29495.0
的目的四舍五入为cout <<
,因为cout
用来打印数字的有效数字的默认数量为6
,默认情况下不打印末尾的零。
您可以使用std::setprecision
更改输出精度(需要#include <iomanip>
):
cout << setprecision(7) << "Value of pvalue : " << *pvalue << endl;
打印
29494.99
。默认情况下,
29494.4344
会四舍五入为29494.4
,并且由于该字符的最后一位不是零,因此将其打印出来。
关于c++ - 动态内存分配输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60139492/