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-এ নয়। বড় মানের জন্য ওভারফ্লো হতে পারে।