为什么最后会变成整数

调试的时候这里不是小数吗

img


最后输出的时候为什么变成了整数

img


后面也没有其他的代码了

cout跟printf是不同的,cout输出float或double,是会将小数点后非有效数字的0去掉的,而printf里面以%f输出规定是以6位小数输出,不管是不是有效数字

#include <iostream>

#include <iomanip>

using namespace std;

void main()

{
    double PT = 673.14159267;

    //保留4位小数,四舍五入哦
    cout << fixed << setprecision(4) << PT <<endl<< 23.45678 <<endl;
    //保留2位有效位
    cout << setprecision(2) << PT <<endl<<9.234<<endl;

    getchar();

}