Printf to Only仅显示十进制和后面的一个字符

时间:2015-02-24 18:29:59

标签: floating-point printf

在我的代码中,我有一个减法,例如:(数字是任意的)

(2.3 + 6.0) - 8.3 = 0.0

我想使用printf函数来显示:.0但是无论我使用什么样的printf变体,我能得到的最好是0.0使用%。1f

有人知道吗?

1 个答案:

答案 0 :(得分:0)

可以使用

snprintf,但我更喜欢使用更简单的if / else逻辑。避免了对lib的依赖。 0.0的情况是一个独特的案例。如果有几个条件需要处理,snprintf可能会更好。

if(num == 0.0f) {
    printf(".0");
}
else {
    printf(".2f", num);
}

请记住,有一些罕见的fp结果接近于零,但并非绝对为零。所以要小心使用。

相关问题