c++ - C - 打印浮点值

标签 c++ c floating-point precision

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

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

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

fscanf(rhs, "%e", &number);
printf("%lf\n", number);

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

谢谢。

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

最佳答案

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

printf( "%6.4lf", number );

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

您可以对长度或精度使用通配符以在运行时提供该值:

int precision = 4;

printf( "%6.*lf", precision, number );

关于c++ - C - 打印浮点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15511276/

相关文章:

c - gcc 的哪个 -O3 优化标志启用 "hardware accelerated instructions"

c - C语言获取文件夹内容

dart - 在 Dart 中将整数位模式解析为 IEEE 754 float

C++递增指向数组的指针

c++ - 为什么 "foo f();"不调用类 "foo"的构造函数?

C 不读取整个 BMP 文件 - fopen

android - 使用 Path.lineTo 在 x 轴上增加一个小数点

c++ - C++11 何时进行相对于运算符优先级的算术类型转换?

c++ - 使用 “undefined symbol”时有关 `dlopen`的共享库错误

c++ - 如何获得与函数一起使用的模板模板参数推导?