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()- এই চারটি মেথড মিলিয়ে ফ্লোটিং-পয়েন্ট নম্বরের পরিস্থিতি সম্পূর্ণভাবে যাচাই করা যায়।