c#相当于c ++“floor”函数

时间:2013-03-07 02:13:46

标签: c# floating-point int floor

我正在寻找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 ++审阅者将检查我的代码,因此在C#中floor的哪些实现是合理的,这样他就不会拉出他的(最后剩下的)头发?

3 个答案:

答案 0 :(得分:6)

您可以使用Math课程。 Math.Floor

有许多重载形式
  1. Math.Floor(Double)
  2. Math.Floor(Decimal)

  3. 简单用法:

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

答案 1 :(得分:3)

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

  

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

答案 2 :(得分:1)

数学库可以满足您的需求。文档为here。更重要的是,术语“发言权”定义为始终按照您的描述行事。有关mathematical floor function

的详细信息,请参阅维基百科
相关问题