मैं निम्नलिखित कार्यक्रम है:डबल और नाएन की तुलना का परिणाम क्या है?
#include <iostream>
#include <cmath>
int main() {
double a = 1;
double b = nan("");
std::cout << (a > b) << std::endl;
std::cout << (b > a) << std::endl;
return 0;
}
आउटपुट:
0
0
nan
के अर्थ से सामान्य तौर पर - not a number
यह स्पष्ट है कि nan
के साथ किसी भी आपरेशन अनिवार्य रूप से व्यर्थ है। IEEE-754
से जो मैंने इंटरनेट में पाया, मुझे पता चला कि एफपीयू में कम से कम एक ऑपरेंड nan
है, परिणाम भी nan
है, लेकिन मुझे ऊपर के उदाहरण के रूप में सामान्य मूल्य और nan
के बीच तुलना के बारे में कुछ भी नहीं मिला।
इसके बारे में मानक क्या कहता है?
एफपीयू फ़ंक्शंस और तुलनात्मक रूप से तार्किक परिणाम संभवतः दो अलग-अलग चीजें हैं। आपके disassembly क्या कहते हैं? – tadman
आपका कोड एक (= हो सकता है) एक '==' तुलना खो सकता है। आपने '<' and '> 'की जांच की लेकिन' == 'के लिए नहीं। शायद आप '<' and '> =' या '<=' and '>' का उपयोग करना चाहते थे। – jotik