C#-এ Decimal.ToUInt32() মেথডটি নির্দিষ্ট Decimal মানকে সমতুল্য ৩২-বিট অনসাইনড ইন্টিজার (uint) এ রূপান্তর করে। দশমিক অংশ থাকলে সেটি ট্রানকেট হয়।
সিনট্যাক্স (Syntax)
public static uint ToUInt32(decimal value);
উদাহরণ ১: খুব ছোট দশমিক মান
using System;
public class Demo
{
public static void Main()
{
Decimal val = 0.001m;
Console.WriteLine("Decimal value = " + val);
uint res = Decimal.ToUInt32(val);
Console.WriteLine("32-bit unsigned integer = " + res);
}
}
আউটপুট
Decimal value = 0.001 32-bit unsigned integer = 0
উদাহরণ ২: সাধারণ দশমিক মান
using System;
public class Demo
{
public static void Main()
{
Decimal val = 67.487m;
Console.WriteLine("Decimal value = " + val);
uint res = Decimal.ToUInt32(val);
Console.WriteLine("32-bit unsigned integer = " + res);
}
}
আউটপুট
Decimal value = 67.487 32-bit unsigned integer = 67
পরিসীমা এবং ওভারফ্লো
UInt32-এর পরিসীমা: 0 থেকে 4,294,967,295 (UInt32.MaxValue)। এই বাইরের মান দিলে OverflowException হবে।
ওভারফ্লো টেস্ট
using System;
public class Demo
{
public static void Main()
{
decimal[] values =
{
4294967295m, // MaxValue - OK
4294967296m, // MaxValue + 1 - Overflow!
-1m, // Negative - Overflow!
123.456m // Normal - OK
};
foreach (var v in values)
{
try
{
uint result = Decimal.ToUInt32(v);
Console.WriteLine($"{v} -> {result} ✓");
}
catch (OverflowException)
{
Console.WriteLine($"{v} -> OVERFLOW! ✗");
}
}
}
}
আউটপুট
4294967295 -> 4294967295 ✓ 4294967296 -> OVERFLOW! ✗ -1 -> OVERFLOW! ✗ 123.456 -> 123 ✓
Decimal.ToUInt32() vs ToUInt64()
| ফিচার | ToUInt32() | ToUInt64() |
|---|---|---|
| রিটার্ন টাইপ | uint (32-bit) | ulong (64-bit) |
| ম্যাক্স ভ্যালু | 4,294,967,295 | 18,446,744,073,709,551,615 |
| মেমরি | ৪ বাইট | ৮ বাইট |
প্রয়োগিক ব্যবহার: আইডি বা কাউন্টার কনভার্সন
using System;
public class IdConverter
{
public static uint ConvertToUserId(decimal externalId)
{
// ভ্যালিডেশন: পজিটিভ এবং রেঞ্জ চেক
if (externalId < 0 || externalId > uint.MaxValue)
throw new ArgumentOutOfRangeException(nameof(externalId), "ID out of uint range");
return Decimal.ToUInt32(externalId);
}
public static void Main()
{
decimal[] ids = { 1001.0m, 999999.99m, 4294967295m };
foreach (var id in ids)
{
try
{
uint userId = ConvertToUserId(id);
Console.WriteLine($"External: {id} -> UserId: {userId}");
}
catch (Exception ex)
{
Console.WriteLine($"External: {id} -> Error: {ex.Message}");
}
}
}
}
সংশ্লিষ্ট মেথড: ToInt32(), ToInt64(), ToUInt16(), ToByte() ইত্যাদি।