我该如何打印浮动类型的学生的成绩(分数),最多保留两位小数位。例如1)将9打印为9而不是9.000000 2)将8.6打印为8.6而不是8.600000 3)打印6.88为6.88,而不是6.880000。 这些数字没有具体说明。我将扫描成绩并打印出来,同时循环查找
答案 0 :(得分:1)
假设您的浮点值为'val',而所需的小数位数为'n'(对于您的情况为2),则答案将是:
printf("%.*f",n,val);
根据OP的要求进行编辑-
#include<cstdio>
#include<iostream>
using namespace std;
int main()
{ float val;
//considering cases for decimal values (proposed 'n' above) upto second place:
//for no decimal place digits or a round figure:
if(val==int(val))
printf("%.*f",0,val);
//for values having digits upto one decimal place:
else if((((int)(round(x*10))) % 10) != 0))
printf("%.*f",1,val);
//for values having digits upto two decimal places:
else if((((int)(round(x*100))) % 100) != 0))
printf("%.*f",2,val);
return 0;
}