c#相当于c++的“地板”;函数

本文关键字:函数 地板 相当于 c++ | 更新日期: 2023-09-27 18:02:44

我正在寻找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#相当于c++的“地板”;函数

您可以使用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

只用Math.Floor。它趋向于负无穷,c++ floor也是如此。来自文档:

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

数学库可以满足您的需要。医生来了。更重要的是,术语地板的定义总是按照您所描述的行为。有关数学底函数的详细信息,请参阅维基百科