C#のDecimal.Add()メソッドとは?使い方とコード例を解説
C#のDecimal.Add()メソッドは、指定した2つのDecimal(10進数)値を加算し、その結果を返す静的メソッドです。金額計算など、浮動小数点型では誤差が生じる可能性がある場面で、高精度な10進数演算を行いたい場合に活用できます。
構文
Decimal.Add()メソッドの構文は以下のとおりです。
public static decimal Add (decimal val1, decimal val2);
パラメータ
- val1:加算対象となる最初のdecimal値
- val2:加算対象となる2番目のdecimal値
戻り値
val1とval2の合計値をdecimal型で返します。
例外
演算結果がdecimal型で扱える範囲(約 ±7.9 × 1028)を超えた場合には、OverflowExceptionがスローされる点に注意してください。
使用例1:基本的な加算
まずは、2つのDecimal値を加算する基本的な例を見てみましょう。
using System;
public class Demo {
public static void Main(){
Decimal val1 = 3.07m;
Decimal val2 = 4.09m;
Console.WriteLine("Decimal 1 = "+val1);
Console.WriteLine("Decimal 2 = "+val2);
Decimal res = Decimal.Add(val1, val2);
Console.WriteLine("Result (Sum) = "+res);
}
}実行結果
このプログラムを実行すると、次のような出力が得られます。
Decimal 1 = 3.07 Decimal 2 = 4.09 Result (Sum) = 7.16
使用例2:Decimal.MinValueとの加算
続いて、decimal型が取りうる最小値であるDecimal.MinValueを使った例を紹介します。
using System;
public class Demo {
public static void Main(){
Decimal val1 = Decimal.MinValue;
Decimal val2 = 8.21m;
Console.WriteLine("Decimal 1 = "+val1);
Console.WriteLine("Decimal 2 = "+val2);
Decimal res = Decimal.Add(val1, val2);
Console.WriteLine("Result (Sum) = "+res);
}
}実行結果
このプログラムを実行すると、次のような出力が得られます。
Decimal 1 = -79228162514264337593543950335 Decimal 2 = 8.21 Result (Sum) = -79228162514264337593543950327
まとめ
Decimal.Add()メソッドを使えば、2つのdecimal値を安全かつ正確に加算できます。decimalリテラルを記述する際は、数値の末尾にmサフィックスを付けることを忘れないようにしましょう。また、結果がdecimal型の範囲を超える可能性がある場合は、OverflowExceptionへの対処も検討してください。
-
C#のDecimal.ToSByte()メソッドとは?構文と使い方をわかりやすく解説
C#のDecimal.ToSByte()メソッドは、指定されたDecimal(10進数)の値を、それと等価な8ビット符号付き整数(sbyte型)に変換するために使用される静的メソッドです。小数を含む値を整数として扱いたい場合などに活用できます。 構文 このメソッドの構文は以下の通りです。 public static sbyte ToSByte (decimal val); パラメータの「val」には、変換対象となるdecimal型の数値を指定します。戻り値としては、変換後のsbyte型(-128〜127の範囲)の値が返されます。 使用例1:基本的な使い方 まずは、Decimal.ToS
-
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」に