C:通过printf()打印出来的double可以有多长

标签 c printf mpi

我需要指定要从 double 值打印的字符串的确切长度,但我不想限制输出超出必要的范围。

当 printf() 格式化时,6 位精度 double 的最大长度是多少?

具体来说,我应该在 printf("%X.6lg",doubleValue); 中为 X 赋予什么值以确保没有值被截断?

我需要具体说明长度的原因是我正在定义一个 MPI 派生数据类型,该数据类型由许多 double 值的字符串表示组成,并且必须知道它们的确切长度以便在 MPI 进程之间划分文件区域.

我希望这很清楚。预先感谢您的回答。

最佳答案

使用 printf("%.6g", doubleValue)printf("%.6Lg", doubleValue)

请注意,在精度说明符中省略前导数字(“宽度”)对值的整数部分的长度没有要求。

另请注意,小写字母“l”将指定您的值是一个长整数。大写字母“L”指定一个长 double 值。

另请注意,如果您不希望它可能被更改为科学记数法(如果它是更短的表示形式),那么您将使用“f"而不是 "g"。

请参阅 printf reference here .

关于C:通过printf()打印出来的double可以有多长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1012747/

相关文章:

c - 内存泄漏 - C 中的单链表

c++ - 我如何开始网络编程?

php - 四舍五入到最接近的分数(二分之一、四分之一等)

c - MPI 非阻塞通信循环在一定数量的节点上发生故障

c - 在 SIGINT 之前打印消息

c - 打印 char[] 核心转储 C

C 中的 MPI 和指针传输

c - MPI Sendrecv 与 MPI_ANY_SOURCE

c - printf 相当于 dprintf(STDOUT_FILENO) 吗?

c - printf() 中赋值运算符的问题