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

C#-এ Decimal.Truncate() মেথড: দশমিকের পূর্ণসংখ্যা অংশ বের করা


C#-এ Decimal.Truncate() মেথডটি নির্দিষ্ট Decimal মানের পূর্ণসংখ্যা অংশ (integral digits) ফেরত দেয়। এটি কোনো রাউন্ডিং (rounding) করে না, বরং দশমিক অংশটি সরাসরি কেটে দেয় (truncates toward zero)।

সিনট্যাক্স (Syntax)

public static decimal Truncate(decimal d);

এখানে d হলো ট্রানকেট করার দশমিক সংখ্যা।

উদাহরণ ১: Truncate() এবং ToUInt64() ব্যবহার

using System;

public class Demo
{
    public static void Main()
    {
        Decimal val = 6576.876m;
        Console.WriteLine("Decimal value = " + val);
        
        ulong res = Decimal.ToUInt64(val);
        Console.WriteLine("64-bit unsigned integer = " + res);
        
        Decimal val2 = Decimal.Truncate(val);
        Console.WriteLine("Integral digits of the decimal = " + val2);
    }
}

আউটপুট

Decimal value = 6576.876
64-bit unsigned integer = 6576
Integral digits of the decimal = 6576

উদাহরণ ২: অন্য একটি দশমিক মান

using System;

public class Demo
{
    public static void Main()
    {
        Decimal val = 28676.935m;
        Console.WriteLine("Decimal value = " + val);
        
        Decimal val2 = Decimal.Truncate(val);
        Console.WriteLine("Integral digits of the decimal = " + val2);
    }
}

আউটপুট

Decimal value = 28676.935
Integral digits of the decimal = 28676

Truncate() vs অন্যান্য রাউন্ডিং মেথড

মেথডবর্ণনাউদাহরণ (2.7)উদাহরণ (-2.7)
Truncate()শূন্য দিকে কেটে দেয়2-2
Floor()নিচের পূর্ণসংখ্যায় (নেগেটিভের জন্য নিচে)2-3
Ceiling()উপরের পূর্ণসংখ্যায় (নেগেটিভের জন্য উপরে)3-2
Round()নিকটতম পূর্ণসংখ্যায় (Banker's rounding)3-3

তুলনামূলক উদাহরণ

using System;

public class RoundingDemo
{
    public static void Main()
    {
        decimal[] values = { 2.7m, 2.3m, -2.7m, -2.3m };
        
        Console.WriteLine($"{"Value",8} {"Truncate",10} {"Floor",8} {"Ceiling",10} {"Round",8}");
        Console.WriteLine(new string('-', 44));
        
        foreach (var v in values)
        {
            Console.WriteLine($"{v,8} {Decimal.Truncate(v),10} {Decimal.Floor(v),8} {Decimal.Ceiling(v),10} {Decimal.Round(v),8}");
        }
    }
}

আউটপুট

   Value   Truncate    Floor   Ceiling    Round
--------------------------------------------
     2.7         2       2         3       3
     2.3         2       2         3       2
    -2.7        -2      -3        -2      -3
    -2.3        -2      -3        -2      -2

প্রয়োগিক ব্যবহার: আর্থিক হিসাব

// টাকার গণনায় পয়সা (পৈসা) বাদ দিয়ে শুধু টাকা নেওয়া
decimal price = 199.99m;
decimal wholeTaka = Decimal.Truncate(price); // 199
Console.WriteLine($"Price: {price}, Whole Taka: {wholeTaka}");

নোট: Truncate() ফেরত দেয় decimal টাইপে, int বা long-এ নয়। বড় মানের জন্য ওভারফ্লো হতে পারে।

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

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

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

  4. C#-এ Truncate মেথড