Decimal.Floor(Decimal) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Arredonda um número especificado Decimal para o inteiro mais próximo de menos infinito.
public:
static System::Decimal Floor(System::Decimal d);
public:
static System::Decimal Floor(System::Decimal d) = System::Numerics::IFloatingPoint<System::Decimal>::Floor;
public static decimal Floor(decimal d);
static member Floor : decimal -> decimal
Public Shared Function Floor (d As Decimal) As Decimal
Parâmetros
- d
- Decimal
O valor a arredondar.
Devoluções
Se d tem uma parte fracionária, o próximo número inteiro Decimal para menos infinito que é menor que d.
-ou-
Se d não tiver uma parte fracionária, d é devolvido inalterado. Note-se que o método devolve um valor integral do tipo Decimal.
Implementações
Exemplos
O exemplo seguinte ilustra o Floor método e contrasta-o com o Ceiling próprio.
using System;
public class Example
{
public static void Main()
{
decimal[] values = {12.6m, 12.1m, 9.5m, 8.16m, .1m, -.1m, -1.1m,
-1.9m, -3.9m};
Console.WriteLine("{0,-8} {1,10} {2,10}\n",
"Value", "Ceiling", "Floor");
foreach (decimal value in values)
Console.WriteLine("{0,-8} {1,10} {2,10}", value,
Decimal.Ceiling(value), Decimal.Floor(value));
}
}
// The example displays the following output:
// Value Ceiling Floor
//
// 12.6 13 12
// 12.1 13 12
// 9.5 10 9
// 8.16 9 8
// 0.1 1 0
// -0.1 0 -1
// -1.1 -1 -2
// -1.9 -1 -2
// -3.9 -3 -4
open System
let values =
[ 12.6m; 12.1m; 9.5m; 8.16m; 0.1m; -0.1m; -1.1m; -1.9m; -3.9m ]
printfn "%-8s %10s %10s\n" "Value" "Ceiling" "Floor"
for value in values do
printfn $"%-8O{value} %10O{Decimal.Ceiling value} %10O{Decimal.Floor value}"
// The example displays the following output:
// Value Ceiling Floor
//
// 12.6 13 12
// 12.1 13 12
// 9.5 10 9
// 8.16 9 8
// 0.1 1 0
// -0.1 0 -1
// -1.1 -1 -2
// -1.9 -1 -2
// -3.9 -3 -4
Module Example
Public Sub Main()
Dim values() As Decimal = {12.6d, 12.1d, 9.5d, 8.16d, .1d, -.1d,
-1.1d, -1.9d, -3.9d}
Console.WriteLine("{0,-8} {1,10} {2,10}",
"Value", "Ceiling", "Floor")
Console.WriteLine()
For Each value As Decimal In values
Console.WriteLine("{0,-8} {1,10} {2,10}", value,
Decimal.Ceiling(value), Decimal.Floor(value))
Next
End Sub
End Module
' The example displays the following output:
' Value Ceiling Floor
'
' 12.6 13 12
' 12.1 13 12
' 9.5 10 9
' 8.16 9 8
' 0.1 1 0
' -0.1 0 -1
' -1.1 -1 -2
' -1.9 -1 -2
' -3.9 -3 -4
Observações
O comportamento deste método segue a Norma IEEE 754, Secção 4. Este tipo de arredondamento é por vezes chamado arredondamento em direção ao infinito negativo. Por outras palavras, se d for positivo, qualquer componente fracionária é truncado. Se d for negativo, a presença de qualquer componente fracionária faz com que seja arredondado para o número inteiro menor. O funcionamento deste método difere do Ceiling método, que suporta arredondamento em direção ao infinito positivo.