【C#】Decimal.ToInt16()メソッドの使い方とサンプルコード
概要
C#のDecimal.ToInt16()メソッドは、指定されたDecimal(10進数)の値を、それと等価な16ビット符号付き整数(short型)に変換するために使用されます。変換時には、小数部分が最も近い整数へ丸められる点が特徴です。
構文
構文は以下の通りです。
public static short ToInt16 (decimal val);
引数のvalには、変換対象となるdecimal型の数値を指定します。戻り値として、変換後の16ビット符号付き整数が返されます。
注意点
変換元の値がshort型の範囲(-32,768 ~ 32,767)を超えている場合や、値が無効な場合にはOverflowExceptionがスローされるため、実際のコードでは例外処理と組み合わせて使用するのが安全です。
使用例
まず、基本的な使用例を見てみましょう。
using System;
public class Demo {
public static void Main(){
Decimal val1 = -3.578m;
Decimal val2 = 9.352m;
Console.WriteLine("Decimal 1 = "+val1);
Console.WriteLine("Decimal 2 = "+val2);
short res1 = Decimal.ToInt16(val1);
short res2 = Decimal.ToInt16(val2);
Console.WriteLine("16ビット符号付き整数(value1)= "+res1);
Console.WriteLine("16ビット符号付き整数(value2)= "+res2);
}
}出力結果
このプログラムを実行すると、次のような出力が得られます。
Decimal 1 = -3.578 Decimal 2 = 9.352 16ビット符号付き整数(value1)= -3 16ビット符号付き整数(value2)= 9
-3.578は最も近い整数である-3に、9.352は9に丸められていることが確認できます。
使用例(その2)
続いて、別の例を見てみましょう。
using System;
public class Demo {
public static void Main(){
Decimal val1 = 0.001m;
Decimal val2 = 1.000m;
Console.WriteLine("Decimal 1 = "+val1);
Console.WriteLine("Decimal 2 = "+val2);
short res1 = Decimal.ToInt16(val1);
short res2 = Decimal.ToInt16(val2);
Console.WriteLine("16ビット符号付き整数(value1)= "+res1);
Console.WriteLine("16ビット符号付き整数(value2)= "+res2);
}
}出力結果
実行すると、以下のような出力が得られます。
Decimal 1 = 0.001 Decimal 2 = 1.000 16ビット符号付き整数(value1)= 0 16ビット符号付き整数(value2)= 1
0.001は0に、1.000はそのまま1に変換されています。
まとめ
Decimal.ToInt16()メソッドを使えば、decimal型の値を手軽にshort型へ変換できます。小数部分は自動的に丸められますが、short型の範囲外の値を渡すとOverflowExceptionが発生するため、入力値のチェックやtry-catchによる例外処理を併用することをおすすめします。
-
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」に
-
C#のDecimal.Floor()メソッドの使い方を徹底解説
概要C#のDecimal.Floor()メソッドは、指定されたDecimal型の数値を「負の無限大方向」に向かって最も近い整数へ丸める静的メソッドです。正の数であれば小数点以下がそのまま切り捨てられますが、負の数の場合はより小さい整数側へ丸められる点に注意が必要です。構文構文は以下のとおりです。public static decimal Floor (decimal val);引数valには、丸めの対象となるDecimal型の値を指定します。使用例1:正の数の場合まず、正のDecimal値に対してDecimal.Floor()メソッドを使用する例を見てみましょう。using System; p