c语言怎么让double输出没有后面的0

double类型输出总是带一串0 怎么让double的输出没有后面的0

如果是一定要这样的话,可以考虑转成字符串,然后从后往前查找到第一个不是0的位置,后添加‘\0’输出。

楼上都是说自行控制输出小数点后面的几位小数,而楼主应该是想输出直到最后一位有效数字吧,这个有几位好像需要自己判断,然后根据有几位有效数字再决定输出小数点后面几位小数。

输出格式控制,楼主百度

c语言怎么让double输出没有后面的0
应该没有把

楼主可以看看这里关于格式化输出的介绍:
http://wenku.baidu.com/link?url=XYVHQcjsPStGiB9hmptcpIAssl__GZHMu1sanMH2H-d3JgcmpBS7WlnZoyNh8A2qeQ-JgIL1Js6oqv1y5aYnw9J1dmxnEf5t_4RIcfzMiYG

 double doubleNum = 100.0000;
 printf("doubleNum = %.0f", doubleNum);

printf("%.0f",Num)

这个是格式化输出的问题,要用到 格式化输出控制符

printf("%m.nlf", num);

其中m为控制输出的列宽,n为控制小数点后的位数

考虑全部变成转成字符型,从后面开始查找第一个不是0的字符,然后在后面加入‘\0’在输出。

printf("%d\n",Num);
即将double类型的变量Num强制转化为int类型即可。

感觉楼上都没理解题主的问题关键,题主应该是问怎么将输出的浮点数(以2.330000为例)的“末尾”的多余的0去掉。

但到目前为止我没有见过有现成的函数或其他工具能实现这个功能

2.330000,看似输出的只有这么多,但在内存中它可能是这样的:2.330000000001,只不过默认输出6位小数罢了,所以要把看似是”末尾“的0去掉,
还得自己单独设计一套算法。

输出的格式控制一下就好了printf("%.0f",Num);
另外,c++的可以用cout << setprecision(N) << Num << endl;来控制

printf("%2d\n"); 2表示小数点后面的位数

如果用C++输出流输出,可以用setw设置宽度

%.0f 表示以浮点类型输出,输出结果小数点后保留0位。实际上你的问题的解决要看你实际数据小数点后有几位小数,这样你设置显示方式,就可以不让其显示多余的0

printf("%.0d",Num);


 double c =115.3937008;
 printf("%.0f",c);