天天看点

c++中关于fixed setprecision(0) 的用法作用

c++中关于fixed setprecision(0) 的用法作用

 遇到一个问题 就是学号的输出

如果学号的数字超过六位数 就会转化成一个别的数字  这是因c++默认的流输出数值有效位是6

#include <iostream>

#include<iomanip>

using

namespace

std;

int

main()

{

double

xuehao;//学号 数字较大 所以用double储存

cin >> xuehao;

char

sex;   //性别 char

cin >> sex;

int

score1, score2, score3, score4;

cin >> score1 >> score2 >> score3 >> score4;

double

ave;

ave = (score1 + score2 + score3 + score4) / 4.0;

cout << fixed << setpreci

sion(0) << xuehao <<

" ";//只使用 fixed的话 会显示全部的学号 但是会自动保留六位小数 加上setprecision(0) 控制小数点后位数为0点 所以会显示全部的学号 

cout << (ave > 85 ?

"y"

:

"n"

) << endl;

return

0;

}