我可以制作像C ++流一样的printf格式文件吗?
我正在比较两个程序的输出,一个是C ++,另一个是C ++,使用diff
,所以输出必须相同。
有没有什么办法printf
,这样,就好像它是用它打印的格式双<< mydouble
。
我目前使用printf("%g",mydouble)
以下是一些差异的例子:
c: 3.24769e-05 c++: 3.2477e-05
c: 0.0026572 c++: 0.00265721
有趣的是,科学记法在c中有更多的数字,并且十进制记法在c ++中有更多的数字。
你可以通过使用C中的格式说明符来解决这个问题。
例如,假设你想在小数点后打印出3个地方,你可以使你的printf如下所示:
printf("%.3lf", dub);
double dub = .0137;
值double dub = .0137;
输出将是0.014
这可以解决你的第二种情况,如果你想要打印更多的精确度,你可以写:
printf("%.8lf", dub);
您的double dub = 0.00265721;
输出double dub = 0.00265721;
然后是0.00265721
除非计算中包含左侧的数字,否则%g的情况的工作方式相同。 如果你想要C ++版本(我认为更低的精度),那么你的代码看起来像这样:
double dub = .0000324769;
printf("%.5g", dub);
这得出3.2477e-05
上一篇: Can I make printf format floats like C++ streams
下一篇: How can we change android application icon dynamically in Android