请教,关于C语言输出结果的小数部分

有下面这样一个程序:main(){float a,b,c; scanf("%f %f",a,b); c=a+b; printf("%f+%f=%f",a,b,c);}例如:输入 1 2.5回车后得到如下结果:1.000000+2.500000=3.500000请问如何完成以下功能: 输出结果的时候.没有小数的时候,只显示整数部分, 有小数的时候,才显示小数部分,但后面的0不显示. 万分感谢.采纳答案后.补分.
2026年09月15日 22:47
有5个网友回答
网友(1):

那你可以这么做:(主要是判断是否有小数的问题)
float a,b,c;

c = a + b;

int d;
将c强制类型转换成整数 d = c;
if(d - c == 0)
/*没有小数*/
printf(d);
else
printf(c);
这样可能能实现,要不行你可以找找关于位运算的知识,也许可以解决(一般的C教材中都有),这些希望能给你些帮助!

网友(2):

float改成int

网友(3):

完全满足你要求恐怕相当麻烦了
不知道有没有好办法
不过一般实型运算取1位小数就行了
可以这样改改
printf("%1.1f+%1.1f=%1.1f",a,b,c);
这样整型实型都取1位小数

网友(4):

应该把a,b,c定义为整型吧

网友(5):

先取整,再用原来的数去模除取整后的数,如果结果大于0,就是有小数,否则没有小数。