c语言中float类型,小数点后面保留0位小数,可以写成%.f吗,还是只能是%.0f?

如题所述

c语言的printf格式化输出函数的%.03f,意思是排除非有效数字的0输出,仅保留3位有效数字,但是使用%.0f是只能输出0的,例如:

printf("%%.03f,%.03f\n",a);//这句可以输出0.007

  printf("%%.0f,%.0f\n",a);//但是这句就只能输出0,在最新的GCC编译器中是这样

//但是在visual studio c 里又是正常的


如果你想去除浮点数a的小数部分,

可以使用

a=-6.5;printf("%%d,%d\n",(int)a);//输出为-6

 

 如果你想最稳定地输出数字,建议用math.h的round函数

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-10-24
float类型的字面常量,后面需要加上f或者F来表示是一个单精度浮点数。只所以要这样写,是因为默认的浮点数常量都是double类型。include int main(){ 1.1; //这种...
第2个回答  2021-10-24
float类型的字面常量,后面需要加上f或者F来表示是一个单精度浮点数。只所以要这样写,是因为默认的浮点数常量都是double类型。include int main()
第3个回答  2021-10-24
对于上述情况,你只能写成后面的格式,因为前面的格式是没有限制小数点的意思!谢谢,望采纳!
第4个回答  2021-10-24
一般情况下的话,我觉得如果说出现了这种情况下的话,确实是不可以进行加百分数的,所以说我觉得性价比那也是并不很高