C:通过printf()打印时双倍可以多长时间

Ros*_*ane 5 c printf mpi

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

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

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

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

我希望这很清楚.在此先感谢您的回答.

Dem*_*emi 6

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

注意,在精度说明符中省略前导数字("宽度")不要求值的整数部分的长度.

另请注意,大写"l"将指定您的值为long int.大写"L"指定一个long double值.

另请注意,如果您不希望将其更改为科学记数法(如果它是较短的表示法),那么您将使用"f"而不是"g".

请参阅此处printf参考.