C语言如何将浮点数小数点后面多余的0去掉
时间: 2024-10-14 16:05:43 浏览: 62
在C语言中,如果你想要去除浮点数(如`float`或`double`类型)小数点后多余的零,可以使用`printf`函数结合`%.g`或者`%.f`格式控制符。这两个格式说明符会自动处理不必要的精度。
例如:
```c
#include <stdio.h>
void remove_extra_zeros(float num) {
char buffer[32]; // 用于存储转换后的字符串
printf("%.g", num, buffer); // 或者 %.f
*buffer = '\0'; // 将字符串结束标志设为'\0'
if (buffer[strlen(buffer)-1] == '0') { // 检查最后一个字符是否为0
int i = strlen(buffer) - 2; // 从倒数第二个位置开始检查
while (i >= 0 && buffer[i] == '0') {
buffer[i] = '\0'; // 如果遇到非零,则跳出循环
i--;
}
if (i > 0 && buffer[i] == '.') { // 如果还有.',减去一位
i--;
}
}
printf("%s\n", buffer); // 输出结果
}
int main() {
float f = 123.4500;
remove_extra_zeros(f);
return 0;
}
```
运行上述程序,它会把浮点数的小数部分多余的0去掉,输出结果为`123.45`。
阅读全文