C#-এ Decimal.ToUInt64() মেথডটি নির্দিষ্ট Decimal মানকে সমতুল্য ৬৪-বিট অনসাইনড ইন্টিজার (ulong) এ রূপান্তর করে। দশমিক অংশ থাকলে সেটি ট্রানকেট (কেটে দেয়া) হয়।
সিনট্যাক্স (Syntax)
public static ulong ToUInt64(decimal value);
এখানে value হলো রূপান্তর করার দশমিক সংখ্যা।
উদাহরণ ১: সাধারণ দশমিক মান
using System;
public class Demo
{
public static void Main()
{
Decimal val = 99.29m;
Console.WriteLine("Decimal value = " + val);
ulong res = Decimal.ToUInt64(val);
Console.WriteLine("64-bit unsigned integer = " + res);
}
}
আউটপুট
Decimal value = 99.29 64-bit unsigned integer = 99
উদাহরণ ২: খুব ছোট দশমিক মান (১ এর নিচে)
using System;
public class Demo
{
public static void Main()
{
Decimal val = 0.001m;
Console.WriteLine("Decimal value = " + val);
ulong res = Decimal.ToUInt64(val);
Console.WriteLine("64-bit unsigned integer = " + res);
}
}
আউটপুট
Decimal value = 0.001 64-bit unsigned integer = 0
ওভারফ্লো এক্সেপশন (OverflowException)
যদি দশমিক মান UInt64-এর পরিসীমার বাইরে হয় (নেগেটিভ বা > ১৮,৪৪৬,৭৪৪,০৭৩,৭০৯,৫৫১,৬১৫), তবে OverflowException নিক্ষিপ্ত হবে।
উদাহরণ: ওভারফ্লো হ্যান্ডলিং
using System;
public class Demo
{
public static void Main()
{
decimal[] testValues =
{
18446744073709551615m, // UInt64.MaxValue - OK
18446744073709551616m, // MaxValue + 1 - Overflow!
-1m, // Negative - Overflow!
99.99m // Normal - OK
};
foreach (var val in testValues)
{
try
{
ulong result = Decimal.ToUInt64(val);
Console.WriteLine($"{val} -> {result} ✓");
}
catch (OverflowException)
{
Console.WriteLine($"{val} -> OverflowException! ✗");
}
}
}
}
আউটপুট
18446744073709551615 -> 18446744073709551615 ✓ 18446744073709551616 -> OverflowException! ✗ -1 -> OverflowException! ✗ 99.99 -> 99 ✓
Decimal.ToUInt64() vs Decimal.Truncate() + Cast
| পদ্ধতি | বর্ণনা | ওভারফ্লো চেক |
|---|---|---|
Decimal.ToUInt64(d) | বিল্ট-ইন মেথড | হ্যাঁ, এক্সেপশন ফেলে |
(ulong)Decimal.Truncate(d) | ম্যানুয়াল কাস্ট | না, অনপ্রिडিক্টেবল আচরণ |
সুরক্ষিত কনভার্সন প্যাটার্ন
public static bool TryToUInt64(decimal value, out ulong result)
{
try
{
result = Decimal.ToUInt64(value);
return true;
}
catch (OverflowException)
{
result = 0;
return false;
}
}
// ব্যবহার
if (TryToUInt64(userInput, out ulong id))
{
// সফল
}
else
{
// ইনভ্যালিড ইনপুট
}
সংশ্লিষ্ট মেথড: ToUInt32(), ToUInt16(), ToInt64(), ToInt32() ইত্যাদি।