কেন যে যুক্তি
NaN
মানে Not a Number
। সংখ্যা কী নয়? কিছু. আপনার একদিকে কিছু থাকতে পারে এবং অন্যদিকে কিছু থাকতে পারে, তাই কোনও কিছুই গ্যারান্টি দেয় না যে উভয়ই সমান। NaN
এর সাথে গণনা করা হয় Double.longBitsToDouble(0x7ff8000000000000L)
এবং আপনি যেমন নথিতে দেখতে পারেন longBitsToDouble
:
যুক্তি সীমার মধ্যে কোনো মান থাকে তবে 0x7ff0000000000001L
মাধ্যমে
0x7fffffffffffffffL
বা ব্যাপ্তির মধ্যে 0xfff0000000000001L
দিয়ে
0xffffffffffffffffL
, ফলে একটি হল NaN
।
এছাড়াও, NaN
যুক্তিযুক্তভাবে এপিআই এর ভিতরে চিকিত্সা করা হয়।
নথিপত্র
/**
* A constant holding a Not-a-Number (NaN) value of type
* {@code double}. It is equivalent to the value returned by
* {@code Double.longBitsToDouble(0x7ff8000000000000L)}.
*/
public static final double NaN = 0.0d / 0.0;
উপায় দ্বারা, NaN
হয় আপনার কোড নমুনা হিসাবে পরীক্ষিত:
/**
* Returns {@code true} if the specified number is a
* Not-a-Number (NaN) value, {@code false} otherwise.
*
* @param v the value to be tested.
* @return {@code true} if the value of the argument is NaN;
* {@code false} otherwise.
*/
static public boolean isNaN(double v) {
return (v != v);
}
সমাধান
ব্যবহার কি আপনি কি করতে পারেন compare
/ compareTo
:
Double.NaN
এই পদ্ধতিটিকে নিজের সমতুল্য এবং অন্যান্য সমস্ত double
মানের (সহ
Double.POSITIVE_INFINITY
) এর চেয়ে বড় হিসাবে বিবেচনা করা হয় ।
Double.compare(Double.NaN, Double.NaN);
Double.NaN.compareTo(Double.NaN);
বা equals
,:
যদি this
এবং argument
উভয়ই উপস্থাপন করে Double.NaN
তবে মানটি থাকা সত্ত্বেও
equals
পদ্ধতিটি ফিরে আসে ।true
Double.NaN==Double.NaN
false
Double.NaN.equals(Double.NaN);