我声明变量double MyDouble;
。printf双尾无尾数
如果我然后设置MyDouble = 1000.0/3.0;
然后 printf("%g", MyDouble);
给出333.333,所以它失去了一些精度。
如果我使用printf("%lf", MyDouble);
我会得到精度。
如果我现在设置MyDouble = 5.0/2.0;
并使用printf("%lf", MyDouble);
,我会得到2.500000,所以尾随零。
作为一般情况下,我怎么能没有尾随零的精度。我可以使用snprintf
和%lf
格式将double写入一个字符串,然后编写一个子程序去除尾随的零,但必须有一种更简单的方法。
链接到std :: printf的文件,包括格式说明:http://en.cppreference.com/w/cpp/io/c/fprintf –
你要么需要那么多的精度或你不“T。 –
'l'长度修饰符对'f'说明符没有影响。 – jxh