【发布时间】:2010-11-04 00:10:18
【问题描述】:
我需要指定要从双精度值打印的字符串的确切长度,但我不想限制输出超出必要的范围。
当被 printf() 格式化时,6 位精度双精度的最大长度是多少?
具体来说,我应该给printf("%X.6lg",doubleValue); 中的X 赋予什么值以确保没有值被截断?
我需要具体说明长度的原因是我正在定义一个 MPI 派生数据类型,该数据类型由许多双精度值的字符串表示形式组成,并且必须知道它们的确切长度才能在 MPI 进程之间划分文件区域.
我希望这很清楚。提前感谢您的回答。
【问题讨论】:
-
我不确定您在问什么——您是否希望所有值都为 6 位有效数字,例如 0.123456、1.23456、12345.6 等?还是您只关心小数部分是 6 位有效数字?至于小数值,我不知道如何避免截断,除非你的值是“二元的”(即以二进制结尾)并且小于或等于 63/64。