我应该如何打印一个浮点数,好像它没有小数点后面的数字,例如11.00应打印为11,但11.45应保持不变。问题是一些if语句可能。有什么建议吗?
答案 0 :(得分:2)
我想到的第一个解决方案是施放。 这就是我要做的。 让我们说你的变量是" a",你要打印。
(nth 1 spec)
答案 1 :(得分:0)
这是我的解决方案:
#include <stdio.h>
void printDouble(double fp);
int main(void)
{
printDouble(11.0);
printDouble(11.45);
}
void printDouble(double fp)
{
double _fp;
char buffer[40];
int i = 0;
do{
sprintf(buffer, "%.*lf", i, fp);
sscanf(buffer, "%lf", &_fp);
i++;
} while(fp != _fp);
puts(buffer);
}
输出:
11
11.45
也许这有点效率低下,但确实有效。无论如何,您不需要经常打印浮点数。