如何删除圆形到第二个符号双?我在C ++中只找到了选项:
cout<<fixed<<setprecision(2)<<x[i]<<endl;
但是在这种情况下,它并不清楚如何在C中做到:
printf("%.7hi"x[i]);
printf(" ");
即,不转换到下一行,只有7个符号。
答案 0 :(得分:0)
在C ++中,输出流的precision
属性的效果取决于floatfield
格式标志的流设置。您的C ++示例将该标志设置为fixed
,这似乎与%f
中的printf()
字段描述符相对应。我说&#34;似乎&#34;因为我无法找到任何需要完全对应的文档,但我预计在实践中它们确实完全对应。
在C printf()
格式中,precision是每个输出字段的属性。它在小数点和转换说明符(此处为f
)之间的字段描述符中表示,可能之间有一个长度修饰符。假设x
是double
或float
的数组,那么C ++语句的C模拟就是
printf("%.2f\n", x[i]);
或
fprintf(stdout, "%.2f\n", x[i]);
(这些是等效的)。这些与C ++不同,因为浮点格式和精度不会保留为stdout
的持久属性。