【问题标题】:How do I round up/down a decimal place of a float value? C++如何向上/向下舍入浮点值的小数位? C++
【发布时间】:2016-01-30 21:30:11
【问题描述】:

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

例如: 我有号码:0.073

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

我尝试过使用 ceil 和 floor,但这只会将其四舍五入为整数。我也有 ceilf ,而且它也是整数。

【问题讨论】:

  • std::cout 不是一种方法。它是一个对象。您使用setprecision(x) 来控制流插入器 显示的小数位数operator<<

标签: c++ numbers decimal rounding ceil


【解决方案1】:

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

  • 在四舍五入前加 0.005
  • 或乘以 100,使用 ceil,然后除以 100。

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

【讨论】:

  • 请注意,这两个选项都假定您事先知道您在结果中寻找的小数位数(在这种情况下为两位)。
  • 是的,你需要有一种方法来知道在哪里四舍五入,要么是因为你总是想要一个固定的小数位数,要么是因为你可以使用一些计算来找到你想要四舍五入的小数位- 通常使用 -ceil(log10(number)) 并可能添加或减去一些东西。
【解决方案2】:

既然您想要 cpp 的答案,您应该使用 cmath 库中的 ceil 函数。更多信息请访问:http://en.cppreference.com/w/cpp/numeric/math/ceil

【讨论】:

    猜你喜欢
    • 2012-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    相关资源
    最近更新 更多