C-打印浮点值

C - Printing out float values

本文关键字:打印      更新时间:2023-10-16

我有一个C++程序,它接收值并打印出这样的值:

getline(in,number);
cout << setw(10) << number << endl;

我有一个等价的C程序,它接收值并打印出来,如下所示:

fscanf(rhs, "%e", &number);
printf("%lfn", number);

但是当C++程序打印出0.30951时,C程序打印出了0.309510。更多示例:C++:0.0956439 C:0.095644。只要值长7位数,它似乎会打印相同的结果,但如果它短于7位数,则会在末尾添加一个额外的0。如果长度超过7位,则四舍五入到6位。我希望C的结果与C++程序相匹配。如有任何帮助,我们将不胜感激。

谢谢。

注意:数字是一个浮点值,数字是从文件中读取的。

利用C++iostream的中的长度和精度说明符

std::cout.precision(4);
std::cout << std::setw(10) << number << "n";

利用C格式打印语句中的长度和精度说明符:

printf( "%6.4lf", number );

在一个六个字符宽的"单元格"中打印四位小数。

您可以使用通配符来表示长度或精度,以便在运行时提供该值:

int precision = 4;
printf( "%6.*lf", precision, number );
printf("%gn", number); 

将解决您的问题,%lf用于双精度,%f用于浮点,%g用于浮点。