c++ - 动态内存分配输出

标签 c++ dynamic-memory-allocation

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/

相关文章:

c++ - 自由形式的图像选择(最好在 C++ 中)

c++ - 我可以使用 Boost::Asio 而不用担心网络编程问题吗?

c - 对齐 C 动态内存中数组的开头

c - 在这种情况下如何正确释放双指针的内存?

c - 有没有更好的解决方案来避免我在 hackerearth 中出现 "memory exceeded"错误

C++ 错误 STATUS_ACCESS_VIOLATION

c++ - 在 STL 映射和列表上迭代的通用循环 (c++)

c++ - 我怎么能转换成一个变量类名?

c++ - C++ 中高维数组动态内存分配的正确方法?

c - 列表C中字符串的动态内存分配