Math.Floor 方法

定义

返回小于或等于指定数字的最大整数值。Returns the largest integral value less than or equal to the specified number.

重载

Floor(Double)

返回小于或等于指定双精度浮点数的最大整数值。Returns the largest integral value less than or equal to the specified double-precision floating-point number.

Floor(Decimal)

返回小于或等于指定小数的最大整数值。Returns the largest integral value less than or equal to the specified decimal number.

示例

备注

本文中的 C# 示例运行在 Try.NET 内联代码运行程序和演练环境中。The C# examples in this article run in the Try.NET inline code runner and playground. 选择“运行”按钮以在交互窗口中运行示例 。Select the Run button to run an example in an interactive window. 执行代码后,可通过再次选择“运行”来修改它并运行已修改的代码 。Once you execute the code, you can modify it and run the modified code by selecting Run again. 已修改的代码要么在交互窗口中运行,要么编译失败时,交互窗口将显示所有 C# 编译器错误消息。The modified code either runs in the interactive window or, if compilation fails, the interactive window displays all C# compiler error messages.

注解

此方法的行为遵循 IEEE 标准754第4部分。The behavior of this method follows IEEE Standard 754, section 4. 这种舍入有时称为舍入向负无穷。This kind of rounding is sometimes called rounding toward negative infinity.

Floor(Double)

返回小于或等于指定双精度浮点数的最大整数值。Returns the largest integral value less than or equal to the specified double-precision floating-point number.

public:
 static double Floor(double d);
public static double Floor (double d);
static member Floor : double -> double
Public Shared Function Floor (d As Double) As Double

参数

d
Double

一个双精度浮点数。A double-precision floating-point number.

返回

小于或等于 d 的最大整数值。The largest integral value less than or equal to d. 如果 d 等于 NaNNegativeInfinityPositiveInfinity,则返回该值。If d is equal to NaN, NegativeInfinity, or PositiveInfinity, that value is returned.

示例

下面的示例演示Math.Floor(Double)方法,并将其Ceiling(Double)与方法进行比较。The following example illustrates the Math.Floor(Double) method and contrasts it with the Ceiling(Double) method.

double[] values = {7.03, 7.64, 0.12, -0.12, -7.1, -7.6};
Console.WriteLine("  Value          Ceiling          Floor\n");
foreach (double value in values)
   Console.WriteLine("{0,7} {1,16} {2,14}", 
                     value, Math.Ceiling(value), Math.Floor(value));
// The example displays the following output to the console:
//         Value          Ceiling          Floor
//       
//          7.03                8              7
//          7.64                8              7
//          0.12                1              0
//         -0.12                0             -1
//          -7.1               -7             -8
//          -7.6               -7             -8
Dim values() As Double = {7.03, 7.64, 0.12, -0.12, -7.1, -7.6}
Console.WriteLine("  Value          Ceiling          Floor")
Console.WriteLine()
For Each value As Double In values
   Console.WriteLine("{0,7} {1,16} {2,14}", _
                     value, Math.Ceiling(value), Math.Floor(value))
Next   
' The example displays the following output to the console:
'         Value          Ceiling          Floor
'       
'          7.03                8              7
'          7.64                8              7
'          0.12                1              0
'         -0.12                0             -1
'          -7.1               -7             -8
'          -7.6               -7             -8

注解

此方法的行为遵循 IEEE 标准754第4部分。The behavior of this method follows IEEE Standard 754, section 4. 这种舍入有时称为舍入向负无穷。This kind of rounding is sometimes called rounding toward negative infinity. 换言之,如果d为正,则会截断任何小数部分。In other words, if d is positive, any fractional component is truncated. 如果d为负,则任何小数部分的存在都将导致它舍入为较小的整数。If d is negative, the presence of any fractional component causes it to be rounded to the smaller integer. 此方法的操作不同于Ceiling方法,后者支持向正无穷舍入。The operation of this method differs from the Ceiling method, which supports rounding toward positive infinity.

从 Visual Basic 15.8 开始,如果将由Floor方法返回的值传递到任何整型转换函数,或返回Floor的双精度值,则将优化双精度转换的性能。将自动转换为一个整数,并将Option Strict设置为 Off。Starting with Visual Basic 15.8, the performance of Double-to-integer conversion is optimized if you pass the value returned by the Floor method to the any of the integral conversion functions, or if the Double value returned by Floor is automatically converted to an integer with Option Strict set to Off. 此优化使代码可以更快运行 -- 对于进行大量到整型类型的转换的代码,可快达两倍。This optimization allows code to run faster -- up to twice as fast for code that does a large number of conversions to integer types. 下面的示例演示了此类优化转换:The following example illustrates such optimized conversions:

Dim d1 As Double = 1043.75133
Dim i1 As Integer = CInt(Math.Ceiling(d1))        ' Result: 1043

Dim d2 As Double = 7968.4136
Dim i2 As Integer = CInt(Math.Ceiling(d2))        ' Result: 7968

另请参阅

Floor(Decimal)

返回小于或等于指定小数的最大整数值。Returns the largest integral value less than or equal to the specified decimal number.

public:
 static System::Decimal Floor(System::Decimal d);
public static decimal Floor (decimal d);
static member Floor : decimal -> decimal
Public Shared Function Floor (d As Decimal) As Decimal

参数

d
Decimal

十进制数。A decimal number.

返回

小于或等于 d 的最大整数值。The largest integral value less than or equal to d. 请注意,该方法将返回 Decimal 类型的整数值。Note that the method returns an integral value of type Decimal.

示例

下面的示例演示Math.Floor(Decimal)方法,并将其Ceiling(Decimal)与方法进行比较。The following example illustrates the Math.Floor(Decimal) method and contrasts it with the Ceiling(Decimal) method.

decimal[] values = {7.03m, 7.64m, 0.12m, -0.12m, -7.1m, -7.6m};
Console.WriteLine("  Value          Ceiling          Floor\n");
foreach (decimal value in values)
   Console.WriteLine("{0,7} {1,16} {2,14}", 
                     value, Math.Ceiling(value), Math.Floor(value));
// The example displays the following output to the console:
//         Value          Ceiling          Floor
//       
//          7.03                8              7
//          7.64                8              7
//          0.12                1              0
//         -0.12                0             -1
//          -7.1               -7             -8
//          -7.6               -7             -8
Dim values() As Decimal = {7.03d, 7.64d, 0.12d, -0.12d, -7.1d, -7.6d}
Console.WriteLine("  Value          Ceiling          Floor")
Console.WriteLine()
For Each value As Decimal In values
   Console.WriteLine("{0,7} {1,16} {2,14}", _
                     value, Math.Ceiling(value), Math.Floor(value))
Next   
' The example displays the following output to the console:
'         Value          Ceiling          Floor
'       
'          7.03                8              7
'          7.64                8              7
'          0.12                1              0
'         -0.12                0             -1
'          -7.1               -7             -8
'          -7.6               -7             -8

注解

此方法的行为遵循 IEEE 标准754第4部分。The behavior of this method follows IEEE Standard 754, section 4. 这种舍入有时称为舍入向负无穷。This kind of rounding is sometimes called rounding toward negative infinity. 换言之,如果d为正,则会截断任何小数部分。In other words, if d is positive, any fractional component is truncated. 如果d为负,则任何小数部分的存在都将导致它舍入为较小的整数。If d is negative, the presence of any fractional component causes it to be rounded to the smaller integer. 此方法的操作不同于Ceiling方法,后者支持向正无穷舍入。The operation of this method differs from the Ceiling method, which supports rounding toward positive infinity.

另请参阅

适用于