如何舍入 up/down 浮点值的小数位? C++

How do I round up/down a decimal place of a float value? C++

我知道您可以使用 setprecision(x) 来限制 cout 方法中显示的小数位数。我想知道如何舍入一个小数位 up/down?

例如: 我有号码:0.073

即使7后面的数字是3,我也想向上舍入7。所以数字变成:0.08

我试过使用 ceil 和 floor,但这只能四舍五入到整数。我也有 ceilf,它也四舍五入为整数。

两种可能 如果你总是有那个数量级的数字,

  • 要么在四舍五入前加上 0.005
  • 或者乘以100,用ceil再除以100

如果您有不同数量级的数字,请使用 log10 找到数量级,然后通过上述方法之一进行舍入。

既然你想要 cpp 的答案,你应该使用 cmath 库中的 ceil 函数。可以在以下位置找到更多信息:http://en.cppreference.com/w/cpp/numeric/math/ceil