C#のDecimal.ToSByte()メソッドとは?構文と使い方をわかりやすく解説
C#のDecimal.ToSByte()メソッドは、指定されたDecimal(10進数)の値を、それと等価な8ビット符号付き整数(sbyte型)に変換するために使用される静的メソッドです。小数を含む値を整数として扱いたい場合などに活用できます。
構文
このメソッドの構文は以下の通りです。
public static sbyte ToSByte (decimal val);
パラメータの「val」には、変換対象となるdecimal型の数値を指定します。戻り値としては、変換後のsbyte型(-128〜127の範囲)の値が返されます。
使用例1:基本的な使い方
まずは、Decimal.ToSByte()メソッドを使った基本的なサンプルコードを見てみましょう。
using System;
public class Demo {
public static void Main(){
Decimal val = 97.567m;
Console.WriteLine("Decimal value = " + val);
sbyte res = Decimal.ToSByte(val);
Console.WriteLine("SByte value = " + res);
}
}
出力結果
このプログラムを実行すると、以下のように出力されます。
Decimal value = 97.567 SByte value = 97
ご覧のとおり、小数点以下の値(.567)は切り捨てられ、整数部分の「97」だけがsbyte型として返されています。
使用例2:0に近い小数の場合
続いて、別の例を確認してみましょう。ここでは「0.001」という小さな値を変換しています。
using System;
public class Demo {
public static void Main(){
Decimal val = 0.001m;
Console.WriteLine("Decimal value = " + val);
sbyte res = Decimal.ToSByte(val);
Console.WriteLine("SByte value = " + res);
}
}
出力結果
実行結果は以下のようになります。
Decimal value = 0.001 SByte value = 0
このように、0.001という小数も切り捨てられて「0」に変換されることがわかります。
注意点
Decimal.ToSByte()メソッドを使用する際には、以下のポイントに注意しましょう。
- 範囲外の値で例外が発生: 変換元の値がsbyte型の範囲(-128〜127)を超える場合、OverflowExceptionがスローされます。
- 小数は切り捨てられる: 小数点以下は四捨五入ではなく切り捨てられます。負の値の場合も同様に、0に近い方向へ切り捨てられます。
- nullは指定できない: decimalは値型であるため、引数にnullを渡すことはできません。
範囲外の値が入力される可能性がある場合は、事前に値のチェックを行うか、try-catchブロックでOverflowExceptionを適切に処理することをおすすめします。
-
C#のDecimal.Floor()メソッドの使い方を徹底解説
概要C#のDecimal.Floor()メソッドは、指定されたDecimal型の数値を「負の無限大方向」に向かって最も近い整数へ丸める静的メソッドです。正の数であれば小数点以下がそのまま切り捨てられますが、負の数の場合はより小さい整数側へ丸められる点に注意が必要です。構文構文は以下のとおりです。public static decimal Floor (decimal val);引数valには、丸めの対象となるDecimal型の値を指定します。使用例1:正の数の場合まず、正のDecimal値に対してDecimal.Floor()メソッドを使用する例を見てみましょう。using System; p
-
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を指定した場合は