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

C#-এ Single.IsNaN() মেথড উদাহরণসহ


C#-এ Single.IsNaN() মেথডটি একটি নির্দিষ্ট মান "Not a Number" (NaN) কিনা তা যাচাই করতে ব্যবহৃত হয়। এটি float (Single-precision floating-point) ডেটা টাইপের জন্য কাজ করে।

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

public static bool IsNaN (float f);

এখানে, f প্যারামিটারটি একটি সিঙ্গল-প্রেসিশন ফ্লোটিং-পয়েন্ট নম্বর।

NaN কবে তৈরি হয়?

  • ০ কে ০ দিয়ে ভাগ করার সময় (0.0f / 0.0f)
  • অসীম থেকে অসীম বিয়োগ করার সময় (∞ - ∞)
  • অবৈধ গাণিতিক অপারেশন (যেমন: বর্গমূল নেওয়া ঋণাত্মক সংখ্যার)

উদাহরণ ১: অসীম এবং সাধারণ সংখ্যা যাচাই

using System; 
public class Demo { 
    public static void Main() { 
        float f1 = 5.0f/0.0f; 
        float f2 = 45.5f; 
        Console.WriteLine("Value1 = " + f1); 
        Console.WriteLine("Hashcode for Value1 = " + f1.GetHashCode()); 
        Console.WriteLine("TypeCode for Value1 = " + f1.GetTypeCode()); 
        Console.WriteLine("Is Value1 positive or negative infinity? = " + Single.IsInfinity(f1)); 
        Console.WriteLine("Is Value1 NaN? = " + Single.IsNaN(f1)); 
        Console.WriteLine("\nValue2 = " + f2); 
        Console.WriteLine("Hashcode for Value2 = " + f2.GetHashCode()); 
        Console.WriteLine("TypeCode for Value2 = " + f2.GetTypeCode()); 
        Console.WriteLine("Is Value2 positive or negative infinity? = " + Single.IsInfinity(f2)); 
        Console.WriteLine("Is Value2 NaN? = " + Single.IsNaN(f2)); 
    } 
}

আউটপুট

Value1 = ∞ 
Hashcode for Value1 = 2139095040 
TypeCode for Value1 = Single 
Is Value1 positive or negative infinity? = True 
Is Value1 NaN? = False 
Value2 = 45.5 
Hashcode for Value2 = 1110835200 
TypeCode for Value2 = Single 
Is Value2 positive or negative infinity? = False 
Is Value2 NaN? = False

উদাহরণ ২: NaN মান তৈরি এবং যাচাই

using System; 
public class Demo { 
    public static void Main() { 
        float f1 = 5.0f/0.0f; 
        float f2 = 0.0f / 0.0f; 
        Console.WriteLine("Value1 = " + f1); 
        Console.WriteLine("Hashcode for Value1 = " + f1.GetHashCode()); 
        Console.WriteLine("TypeCode for Value1 = " + f1.GetTypeCode()); 
        Console.WriteLine("Is Value1 positive or negative infinity? = " + Single.IsInfinity(f1)); 
        Console.WriteLine("Is Value1 NaN? = " + Single.IsNaN(f1)); 
        Console.WriteLine("\nValue2 = " + f2); 
        Console.WriteLine("Hashcode for Value2 = " + f2.GetHashCode()); 
        Console.WriteLine("TypeCode for Value2 = " + f2.GetTypeCode()); 
        Console.WriteLine("Is Value2 positive or negative infinity? = " + Single.IsInfinity(f2)); 
        Console.WriteLine("Is Value2 NaN? = " + Single.IsNaN(f2)); 
    } 
}

আউটপুট

Value1 = ∞ 
Hashcode for Value1 = 2139095040 
TypeCode for Value1 = Single 
Is Value1 positive or negative infinity? = True 
Is Value1 NaN? = False 
Value2 = NaN 
Hashcode for Value2 = -4194304 
TypeCode for Value2 = Single 
Is Value2 positive or negative infinity? = False 
Is Value2 NaN? = True

মূল পয়েন্টস

  • Single.IsNaN() শুধুমাত্র তখনই true রিটার্ন করে যখন মান NaN (Not a Number) হয়।
  • অসীম মান (+∞ বা -∞) এর জন্য এটি false রিটার্ন করে।
  • NaN-এর একটি অনন্য বৈশিষ্ট্য: NaN != NaN সবসময় true। তাই NaN যাচাই করতে সবসময় IsNaN() মেথড ব্যবহার করা উচিত।
  • Single.IsInfinity(), Single.IsNaN(), Single.IsPositiveInfinity(), Single.IsNegativeInfinity() - এই চারটি মেথড মিলিয়ে ফ্লোটিং-পয়েন্ট নম্বরের পরিস্থিতি সম্পূর্ণভাবে যাচাই করা যায়।
  1. C# MathF.Floor() মেথড উদাহরণসহ

  2. C#-এ Int64.GetHashCode মেথড উদাহরণসহ

  3. C#-এ Int32.GetHashCode মেথড উদাহরণসহ

  4. C#-এ Int16.GetHashCode() মেথড উদাহরণসহ