【问题标题】:c# equivalent of the c++ "floor" functionc#相当于c++“floor”函数
【发布时间】:2013-03-07 02:13:46
【问题描述】:

我正在寻找 C# 中 floor(x) 的实现,以便它与 C++ 版本匹配。

floor of 2.3 is 2.0
floor of 3.8 is 3.0
floor of -2.3 is -3.0
floor of -3.8 is -4.0

由于 C++ 审阅者将检查我的代码,floor 在 C# 中的哪些实现是合理的,这样他就不会拔掉他(最后剩下的)头发?

【问题讨论】:

标签: c# floating-point int floor


【解决方案1】:

您可以使用Math 类。 Math.Floor有很多重载形式

  1. Math.Floor(Double)
  2. Math.Floor(Decimal)

简单用法:

Math.Floor(2.3) // == 2.0
Math.Floor(3.8) // == 3.0
Math.Floor(-2.3) // == -3.0
Math.Floor(-3.8) // == -4.0

【讨论】:

    【解决方案2】:

    只需使用Math.Floor。它向负无穷大舍入,C++ floor 也是如此。来自the documentation

    此方法的行为遵循 IEEE 标准 754 第 4 节。这种舍入有时称为向负无穷舍入。换句话说,如果 d 为正,则任何小数部分都会被截断。如果 d 为负数,任何小数部分的存在都会导致它被四舍五入为较小的整数。

    【讨论】:

      【解决方案3】:

      数学库可以满足您的需要。文档是here。更重要的是,地板一词被定义为始终按照您的描述行事。有关mathematical floor function的详细信息,请参阅维基百科

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-06-19
        • 2012-09-30
        • 1970-01-01
        • 2017-07-04
        • 1970-01-01
        • 1970-01-01
        • 2015-12-21
        • 1970-01-01
        相关资源
        最近更新 更多