আমার জাভাতে দ্বিগুণ আছে এবং আমি এটি কিনা তা যাচাই করতে চাই NaN
। এই কাজ করতে সবচেয়ে ভালো উপায় কি?
আমার জাভাতে দ্বিগুণ আছে এবং আমি এটি কিনা তা যাচাই করতে চাই NaN
। এই কাজ করতে সবচেয়ে ভালো উপায় কি?
উত্তর:
স্ট্যাটিক ব্যবহার করুন Double.isNaN(double)
পদ্ধতি, অথবা আপনার Double
'র .isNaN()
পদ্ধতি।
// 1. static method
if (Double.isNaN(doubleValue)) {
...
}
// 2. object's method
if (doubleObject.isNaN()) {
...
}
সহজভাবে করছেন:
if (var == Double.NaN) {
...
}
হয় যথেষ্ট নয় কিভাবে কারণে NaN জন্য আইইইই মান এবং ফ্লোটিং পয়েন্ট সংখ্যার সংজ্ঞায়িত করা হয়।
Double.isNaN should be (true)
সুন্দর উত্তর
value == Double.NaN
কাজ করে না, তবে Double.isNaN(value)
ঠিক কাজ করে।
চেষ্টা করুন Double.isNaN()
:
যদি এই দ্বিগুণ মানটি নন-অ-সংখ্যা (NaN) হয় তবে সত্য হয় Return
নোট করুন [ double.isNaN()
] কাজ করবে না, কারণ আনবক্সড ডাবলসের সাথে সম্পর্কিত পদ্ধতি নেই।
Double.isNan()
এবং তাই না double.IsNan()
?
আপনি কোনও মান সীমাবদ্ধ কিনা তাও পরীক্ষা করে বিবেচনা করতে চাইতে পারেন Double.isFinite(value)
। জাভা 8 থেকে Double
ক্লাসে একটি নতুন পদ্ধতি রয়েছে যেখানে আপনি মানটি এনএন এবং অসীম না হলে আপনি একবারে যাচাই করতে পারেন।
/**
* Returns {@code true} if the argument is a finite floating-point
* value; returns {@code false} otherwise (for NaN and infinity
* arguments).
*
* @param d the {@code double} value to be tested
* @return {@code true} if the argument is a finite
* floating-point value, {@code false} otherwise.
* @since 1.8
*/
public static boolean isFinite(double d)
আপনি ব্যবহার করে NaN জন্য চেক করতে পারেন var != var
। NaN
সমান হয় না NaN
।
সম্পাদনা : এটি সম্ভবত সবচেয়ে খারাপ পদ্ধতি। এটি বিভ্রান্তিকর, পাঠযোগ্যতার জন্য ভয়ানক এবং সামগ্রিক খারাপ অনুশীলন।
isNan
উপায়টি খুব খারাপ, এবং পাঠযোগ্যতার পক্ষে আরও ভাল, তবে এটি কাজ করে, তাই না? এবং isNan
পদ্ধতিটি এটি পরীক্ষা করার জন্য ব্যবহার করে NaN
।
isNaN
এটি হুডের নীচে করে তবে এটি কীভাবে কাজ করে? কীভাবে কিছু নিজের সমান হয় না ??
নতুনদের ব্যবহারিক উদাহরণ প্রয়োজন। সুতরাং নিম্নলিখিত কোড চেষ্টা করুন।
public class Not_a_Number {
public static void main(String[] args) {
// TODO Auto-generated method stub
String message = "0.0/0.0 is NaN.\nsimilarly Math.sqrt(-1) is NaN.";
String dottedLine = "------------------------------------------------";
Double numerator = -2.0;
Double denominator = -2.0;
while (denominator <= 1) {
Double x = numerator/denominator;
Double y = new Double (x);
boolean z = y.isNaN();
System.out.println("y = " + y);
System.out.println("z = " + z);
if (z == true){
System.out.println(message);
}
else {
System.out.println("Hi, everyone");
}
numerator = numerator + 1;
denominator = denominator +1;
System.out.println(dottedLine);
} // end of while
} // end of main
} // end of class