C.四舍五入双的结论

C. Conclusion of the rounded double

本文关键字:四舍五入      更新时间:2023-10-16

如何删除舍入到第二个符号的双精度?我在C++中找到了唯一的选项:

cout<<fixed<<setprecision(2)<<x[i]<<endl;

但在这种情况下,还不清楚如何使C中的

printf("%.7hi"x[i]);
printf("    ");

也就是说,没有过渡到下一行,只有7个符号。

在C++中,输出流的precision属性的效果取决于流对floatfield格式标志的设置。您的C++示例将该标志设置为fixed,它似乎对应于printf()中的%f字段描述符。我说"似乎"是因为我很难找到任何需要精确对应的文件,但我预计在实践中它们确实是精确对应的。

printf()格式中,精度是每个输出字段的一个属性。它在小数点和转换说明符(此处为f)之间的字段描述符中表示,可能在两者之间使用长度修饰符。假设xdoublefloat的数组,那么C++语句的C模拟就是

printf("%.2fn", x[i]);

fprintf(stdout, "%.2fn", x[i]);

(这些是等效的)。然而,它们与C++的不同之处在于,浮点格式和精度并没有保留为stdout的持久属性。