C#でDecimalを同等の64ビット符号なし整数(ulong)に変換する方法
C#で指定した Decimal の値を、それと同等の64ビット符号なし整数(ulong)に変換するには、Decimal.ToUInt64() メソッドを使用します。このメソッドは、小数点以下を切り捨てた整数値を返します。なお、変換元の値が負の場合や UInt64.MaxValue を超える場合は、OverflowException がスローされる点に注意してください。
例1:基本的な使い方
using System;
public class Demo {
public static void Main() {
Decimal val = 99.29m;
Console.WriteLine("Decimal値 = " + val);
ulong res = Decimal.ToUInt64(val);
Console.WriteLine("64ビット符号なし整数 = " + res);
}
}出力
このプログラムを実行すると、次のような結果が表示されます。
Decimal値 = 99.29 64ビット符号なし整数 = 99
このように、元の値が 99.29m であっても、小数部分は切り捨てられ、結果として 99 が返されます。
例2:0に近い小数値の場合
続いて、もう一つ例を見てみましょう。
using System;
public class Demo {
public static void Main() {
Decimal val = 0.001m;
Console.WriteLine("Decimal値 = " + val);
ulong res = Decimal.ToUInt64(val);
Console.WriteLine("64ビット符号なし整数 = " + res);
}
}出力
実行結果は以下の通りです。
Decimal値 = 0.001 64ビット符号なし整数 = 0
0.001m のような1未満の値は、整数部が存在しないため、変換後は 0 になります。
まとめ
Decimal.ToUInt64(Decimal)は、Decimal値を64ビット符号なし整数(ulong)に変換する静的メソッドです。- 小数点以下は切り捨てられます(四捨五入ではありません)。
- 負の値や範囲外の値を渡すと
OverflowExceptionが発生します。
-
SQL Serverのデータ型に相当するC#のデータ型とは?対応一覧表で解説
C#でSQL Serverと連携するアプリケーションを開発する際、SQL Server側のデータ型がC#ではどの型に対応するのかを正しく把握しておくことは非常に重要です。型の対応関係を誤ると、データの読み書き時に予期しないエラーや精度の低下が発生する可能性があります。以下の表に、SQL Serverの主なデータ型と、それに相当するC#のデータ型の対応関係をまとめました。SQL ServerとC#のデータ型対応表SQL Serverのデータ型相当するC#のデータ型varbinaryByte[]binaryByte[]imageなしvarcharなしcharなしnvarcharString、Cha
-
整数を文字列に変換するC#プログラムの書き方
C#で整数(int型)を文字列(string型)に変換するには、ToString()メソッドを使用します。このメソッドは、すべての数値型が持つ標準的なメソッドで、呼び出すだけで簡単に文字列表現を取得できます。基本的な変換手順1. 変換したい整数を用意するまず、文字列に変換したい整数値を変数に格納します。int num = 299;2. ToString()メソッドで変換する次に、ToString()メソッドを呼び出して、整数を文字列に変換します。String s; int num = 299; s = num.ToString();完全なサンプルコード以下のコードを実行すると、整数を文字列に変