কম্পিউটার টিউটোরিয়াল

C#-এ Decimal.ToUInt32() মেথড: দশমিক থেকে ৩২-বিট অনসাইনড ইন্টিজার


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,29518,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() ইত্যাদি।

  1. C#-এ Decimal.ToSByte() পদ্ধতি

  2. C#-এ Decimal.ToOACurrency() পদ্ধতি

  3. C#-এ Decimal.Floor() মেথড

  4. C#-এ Decimal.Divide() মেথড