我正在使用比较两个程序的输出,一个是C,另一个是C ++ diff
,因此输出必须相同。
有什么办法可以printf
使double格式化,就像使用来打印一样<< 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;
输出的值将是0.014
如果您想提高打印精度,可以解决第二种情况下的问题:
printf("%.8lf", dub);
您的输出double dub = 0.00265721;
将是0.00265721
%g的情况以相同的方式工作,只是计算中包括了左侧的数字。如果您想要C ++版本(我认为精度较低),那么您的代码将如下所示:
double dub = .0000324769;
printf("%.5g", dub);
哪个产量 3.2477e-05
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句