Decimal.ToInt64(Decimal) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Convertit la valeur du Decimal spécifié en entier 64 bits signé équivalent.
public:
static long ToInt64(System::Decimal d);
public static long ToInt64 (decimal d);
static member ToInt64 : decimal -> int64
Public Shared Function ToInt64 (d As Decimal) As Long
Paramètres
- d
- Decimal
Nombre décimal à convertir.
Retours
Entier 64 bits non signé équivalant à la valeur de d
.
Exceptions
d
est inférieur à Int64.MinValue ou supérieur à Int64.MaxValue.
Exemples
L’exemple suivant utilise la ToInt64 méthode pour convertir des nombres décimaux en Int64 valeurs.
using System;
class Example
{
public static void Main( )
{
decimal[] values = { 123m, new Decimal(123000, 0, 0, false, 3),
123.999m, 18446744073709551615.999m,
18446744073709551616m, 9223372036854775807.999m,
9223372036854775808m, -0.999m, -1m,
-9223372036854775808.999m,
-9223372036854775809m };
foreach (var value in values) {
try {
long number = Decimal.ToInt64(value);
Console.WriteLine("{0} --> {1}", value, number);
}
catch (OverflowException e)
{
Console.WriteLine("{0}: {1}", e.GetType().Name, value);
}
}
}
}
// The example displays the following output:
// 123 --> 123
// 123.000 --> 123
// 123.999 --> 123
// OverflowException: 18446744073709551615.999
// OverflowException: 18446744073709551616
// 9223372036854775807.999 --> 9223372036854775807
// OverflowException: 9223372036854775808
// -0.999 --> 0
// -1 --> -1
// -9223372036854775808.999 --> -9223372036854775808
// OverflowException: -9223372036854775809
open System
let values =
[ 123m; Decimal(123000, 0, 0, false, 3uy)
123.999m; 18446744073709551615.999m
18446744073709551616m; 9223372036854775807.999m
9223372036854775808m; -0.999m; -1m
-9223372036854775808.999m
-9223372036854775809m ]
for value in values do
try
let number = Decimal.ToInt64 value
printfn $"{value} --> {number}"
with :? OverflowException as e ->
printfn $"{e.GetType().Name}: {value}"
// The example displays the following output:
// 123 --> 123
// 123.000 --> 123
// 123.999 --> 123
// OverflowException: 18446744073709551615.999
// OverflowException: 18446744073709551616
// 9223372036854775807.999 --> 9223372036854775807
// OverflowException: 9223372036854775808
// -0.999 --> 0
// -1 --> -1
// -9223372036854775808.999 --> -9223372036854775808
// OverflowException: -9223372036854775809
Module Example
Public Sub Main()
Dim values() As Decimal = { 123d, New Decimal(123000, 0, 0, false, 3),
123.999d, 18446744073709551615.999d,
18446744073709551616d, 9223372036854775807.999d,
9223372036854775808d, -0.999d, -1d,
-9223372036854775808.999d,
-9223372036854775809d }
For Each value In values
Try
Dim number As Long = Decimal.ToInt64(value)
Console.WriteLine("{0} --> {1}", value, number)
Catch e As OverflowException
Console.WriteLine("{0}: {1}", e.GetType().Name, value)
End Try
Next
End Sub
End Module
' The example displays the following output:
' 123 --> 123
' 123.000 --> 123
' 123.999 --> 123
' OverflowException: 18446744073709551615.999
' OverflowException: 18446744073709551616
' 9223372036854775807.999 --> 9223372036854775807
' OverflowException: 9223372036854775808
' -0.999 --> 0
' -1 --> -1
' -9223372036854775808.999 --> -9223372036854775808
' OverflowException: -9223372036854775809
Remarques
La valeur de retour fait partie intégrante de la valeur décimale ; les chiffres fractionnaires sont tronqués.
Vous pouvez également convertir une Decimal valeur en entier 64 bits à l’aide de l’opérateur d’affectation Explicit . Étant donné que l’opérateur effectue une conversion restrictive, vous devez utiliser un opérateur de casting en C# ou une fonction de conversion en Visual Basic.