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

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」には、変換対象となるdecimal型の数値を指定します。戻り値は、変換後のOLEオートメーション通貨値を表すlong型の整数です。

使用例1:整数値の変換

まず、基本的な使用例を見てみましょう。

using System;
public class Demo {
    public static void Main(){
        Decimal val = 95;
        Console.WriteLine("Decimal value = "+val);
        long res = Decimal.ToOACurrency(val);
        Console.WriteLine("Long value = "+res);
    }
}

出力結果

Decimal value = 95 
Long value = 950000

この例では、Decimal値「95」がOLEオートメーション通貨形式に変換され、「950000」というlong型の値が出力されています。これは、元の値が10,000倍されていることを示しています。

使用例2:小数値の変換

次に、小数を含む値を変換する例を見てみましょう。

using System;
public class Demo {
    public static void Main(){
        Decimal val = 9587.567m;
        Console.WriteLine("Decimal value = "+val);
        long res = Decimal.ToOACurrency(val);
        Console.WriteLine("Long value = "+res);
    }
}

出力結果

Decimal value = 9587.567
Long value = 95875670

このように、小数を含むDecimal値「9587.567」も同様に10,000倍され、「95875670」という整数値に変換されます。

まとめ

Decimal.ToOACurrency()メソッドは、主にCOMコンポーネントやExcelなど、OLEオートメーションを利用するシステムとの相互運用性が必要な場面で活用されます。金額データを固定小数点形式の整数として扱うことで、浮動小数点演算による誤差を避けられるのが大きな特徴です。

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

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

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

    C#のDecimal.Divide()メソッドは、指定された2つのDecimal型の値を除算するための静的メソッドです。金額計算など、浮動小数点誤差を避けたい正確な10進数演算が必要な場面で活用されます。 構文 Decimal.Divide()メソッドの構文は以下の通りです。 public static decimal Divide (decimal val1, decimal val2); 各パラメータの意味は次の通りです。 val1:被除数(割られる数) val2:除数(割る数) 戻り値は、val1をval2で割った結果を表すdecimal型の値です。なお、val2に0を指定した場合は