我试图让 printf 用浮点数“做正确的事”,即:
永远不会丢失信息,始终打印精确值所需的尽可能多的小数
不要打印一堆多余的尾随零
如果输出将不合理地大,则切换到科学计数法
%.20g
似乎做到了所有这些,但我还想得到一件事:
- 如果该值是整数,请打印尾随 '.0' 以指示它是具有整数值的浮点数,而不是整数类型的数字
有没有办法在不失去前三个标准的情况下获得第四个标准?
我试图让 printf 用浮点数“做正确的事”,即:
永远不会丢失信息,始终打印精确值所需的尽可能多的小数
不要打印一堆多余的尾随零
如果输出将不合理地大,则切换到科学计数法
%.20g
似乎做到了所有这些,但我还想得到一件事:
有没有办法在不失去前三个标准的情况下获得第四个标准?
看起来标志“#”至少会在末尾加上一个句号。试试%#.20g
。
例如,此处记录了 # 标志:“与 a、A、e、E、f、F、g 或 G 一起使用,即使后面没有数字,它也会强制书面输出包含小数点。默认情况下,如果没有数字跟着,不写小数点。”