使用浮点使printf做正确的事情

时间:2013-04-10 23:31:58

标签: c floating-point printf

我正在尝试使用浮点数使printf“做正确的事”,即:

  • 永远不会丢失信息,始终打印精确值所需的小数

  • 不要打印一堆冗余的尾随零

  • 如果输出结果不合理,请切换到科学记数法

%.20g似乎做了所有这些,但还有一件事我想得到:

  • 如果该值是一个整数,请打印一个尾随的“.0”表示它是一个带整数值的浮点数,而不是一个整数类型的数字

有没有办法在不丢失前三个标准的情况下获得第四个标准?

1 个答案:

答案 0 :(得分:0)

看起来标志“#”至少会将句号放在最后。试试%#.20g

#flag例如记录为here: “与a,A,e,E,f,F,g或G一起使用它会强制写入的输出包含小数点,即使后面没有更多数字。默认情况下,如果没有数字,则不写入小数点。”