C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のDecimal.ToInt64()メソッドの使い方:Decimal値を64ビット符号付き整数へ変換する方法

C#のDecimal.ToInt64()メソッドは、指定されたDecimal型(10進数)の値を、等価な64ビット符号付き整数(long型)へ変換するための静的メソッドです。小数点以下はゼロ方向へ切り捨てられ、変換後の値がlong型の範囲(-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807)を超える場合はOverflowExceptionがスローされる点に注意してください。

構文

Decimal.ToInt64()メソッドの構文は以下のとおりです。

public static long ToInt64 (decimal val);

パラメータ「val」には、変換対象となるdecimal型の数値を指定します。戻り値は、変換後の64ビット符号付き整数(long型)です。

使用例1

まず、負の値を含むDecimal値を変換する例を見てみましょう。

using System;
public class Demo {
    public static void Main(){
        Decimal val1 = -567.7989m;
        Decimal val2 = 456.000m;
        Console.WriteLine("Decimal 1 = "+val1);
        Console.WriteLine("Decimal 2 = "+val2);
        long res1 = Decimal.ToInt64(val1);
        long res2 = Decimal.ToInt64(val2);
        Console.WriteLine("value1 を64ビット符号付き整数に変換 = "+res1);
        Console.WriteLine("value2 を64ビット符号付き整数に変換 = "+res2);
    }
}

出力結果

上記のコードを実行すると、次のような出力が得られます。

Decimal 1 = -567.7989
Decimal 2 = 456.000
value1 を64ビット符号付き整数に変換 = -567
value2 を64ビット符号付き整数に変換 = 456

使用例2

続いて、別の例を見てみましょう。小数点以下がどのように処理されるかを確認できます。

using System;
public class Demo {
    public static void Main(){
        Decimal val1 = 1.00m;
        Decimal val2 = 34.678m;
        Console.WriteLine("Decimal 1 = "+val1);
        Console.WriteLine("Decimal 2 = "+val2);
        long res1 = Decimal.ToInt64(val1);
        long res2 = Decimal.ToInt64(val2);
        Console.WriteLine("value1 を64ビット符号付き整数に変換 = "+res1);
        Console.WriteLine("value2 を64ビット符号付き整数に変換 = "+res2);
    }
}

出力結果

上記のコードを実行すると、次のような出力が得られます。

Decimal 1 = 1.00
Decimal 2 = 34.678
value1 を64ビット符号付き整数に変換 = 1
value2 を64ビット符号付き整数に変換 = 34

ポイントまとめ

Decimal.ToInt64()メソッドでは、小数点以下は四捨五入ではなくゼロ方向への切り捨てが行われます。たとえば「-567.7989」は「-567」に、「34.678」は「34」になります。また、Convert.ToInt64()メソッドは丸め処理(最近接偶数への丸め)を行う場合があるため、単純に切り捨てたい場合はDecimal.ToInt64()を使うのが適しています。

  1. C#のDecimal.ToOACurrency()メソッドとは?構文と使い方をサンプルコードで解説

    C#のDecimal.ToOACurrency()メソッドは、指定されたDecimal(10進数)の値を、64ビット符号付き整数に格納されるOLEオートメーション通貨(OLE Automation Currency)値へと変換するためのメソッドです。OLEオートメーション通貨は、小数点以下4桁を固定で持つ形式で表現され、元の値が10,000倍された整数として扱われます。そのため、変換結果はlong型(64ビット符号付き整数)として返されます。構文このメソッドの構文は以下の通りです。public static long ToOACurrency (decimal val);パラメータ「val」に

  2. C#のDecimal.Floor()メソッドの使い方を徹底解説

    概要C#のDecimal.Floor()メソッドは、指定されたDecimal型の数値を「負の無限大方向」に向かって最も近い整数へ丸める静的メソッドです。正の数であれば小数点以下がそのまま切り捨てられますが、負の数の場合はより小さい整数側へ丸められる点に注意が必要です。構文構文は以下のとおりです。public static decimal Floor (decimal val);引数valには、丸めの対象となるDecimal型の値を指定します。使用例1:正の数の場合まず、正のDecimal値に対してDecimal.Floor()メソッドを使用する例を見てみましょう。using System; p