C语言中如果double x=123.123000,但是我只想输出0.123 后面的0我不想要该怎么办呢? 牛人解答一下 谢谢了

上面写错了 是输出123.123 意思就是不要后面的0
可能没表达清楚 我意思是这样 任意给个double类型的数 我输出它但是不要后面的那些没用的0
谢谢了!

//看下面例子
#include <stdio.h>
void main()
{
double x=123.123000;
printf("%.3f\n", x);
}
输出
123.123
//详情可参考语法书中关于printf的说明。
http://baike.baidu.com/view/410546.htm
如果不管最后多少个零,都去掉,可以这样:
#include <stdio.h>
#include <string.h>
void main()
{
double x=123.123000123000123000123000123000123000123000123000123000123000123000123000123000123000123000123000;
char ch[100];
int i;

sprintf(ch, "%.20f", x);
i = strlen(ch)-1;
while(ch[i--] == '0');
ch[i+2] = 0;
printf("%s\n", ch);

}
注意VC6下,double最多小数点后面可以有15位,再多了肯定都是0,上面程序设了20,肯定后面都是0,用于输出的话,转换成ch后,删除0字符,再输出,肯定没问题的。
抛砖引玉,楼主参考,有问题,再hi我,继续探讨。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-23
printf("%3f",x); f前面的3就是你要保留的小数点后尾数。
第2个回答  2010-12-23
用%e输出可以没有零,旦以科学计数法输出
相似回答