【问题标题】:Printf to Only Display decimal and one character after itPrintf 仅显示小数点和其后的一个字符
【发布时间】:2015-02-25 03:00:08
【问题描述】:

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

(2.3 + 6.0) - 8.3 = 0.0

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

有人知道方法吗?

【问题讨论】:

标签: floating-point printf


【解决方案1】:

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

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

请记住,很少有 fp 结果接近于零,但并非绝对为零。所以要小心使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-23
    相关资源
    最近更新 更多