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

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


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

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

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

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

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