3

我遇到了一个浮点值数组,我无法使用经过验证的旧 printf() 函数以合理的方式打印出来。我想,问题在于数字的范围很大……从像 -3.66542e-296 这样的小数字到 +9.5543e+301 以及介于两者之间的许多值。

通常值之间的相关性更高,类似 %23.16f 的东西会起作用。但是对于这些巨大的数字, f 说明符不起作用,因为有些数字会打印出几十到几百个数字(溢出大小规范)。这留下了 e 格式(或让 printf() 在 e 和 f 格式之间来回切换的 g 格式)。

当由于值范围大而被迫采用 e 或 g 说明符时,有没有办法:

  1. 使所有值的小数点相互对齐。
  2. 使所有值的 e(指数)相互对齐。
  3. 使 e 后面的位数固定(始终相同)。

对于几乎任何目的,#1 是最好的选择 - 与 . 最有帮助。但在这种情况下,似乎不可能以任何方式制作漂亮、整洁、可读的专栏……除非我遗漏了一些东西。

4

0 回答 0