我正在尝试使用 printf 以仅打印前 n 个字符的方式打印 float 1.2345678、0.1234567、123.45678。我想让这些数字排成一行。 printf("%*g", n, var) 中的 %g 格式说明符执行此操作,但说明符并未将 0.1234567 中的 0 视为有效数字。这会导致 0.1234567 与其他两个数字的对齐出现偏差。
以给定格式对齐数字的最佳方式是什么。是通过 %g 将 0 视为重要的还是使用其他方法?
最佳答案
By definition前导零不是有效数字。如果要打印前 N 位数字,包括前导零,请先将数字转换为字符串并使用 printf("%.*s", n, var_as_string)
。
这样,前 n
个字符确实会打印出来,正如您所要求的那样。当然,小数点 .
与任何其他字符一样,现在很重要,这与 %g
不同。
关于c - 将 0 视为 printf %g 格式说明符中的有效数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41400735/