मैं अजगर पर abs
और fabs
के बीच अंतर की जाँच की (C++) में `बनाम fabs`` abs` के बीच का अंतर है hereक्या
मैं समझता हूँ के रूप में गति और पारित कर दिया प्रकार के बारे में कुछ अंतर देखते हैं, लेकिन मेरे वीएस पर देशी सी ++ से संबंधित प्रश्न
वीएस के संबंध में मैं Visual Studio 2013 (v120)
पर निम्नलिखित की कोशिश की:
float f1= abs(-9.2); // f = 9.2
float f2= fabs(-9); // Compile error [*]
तो fabs(-9)
यह मुझे एक संकलक त्रुटि दे देंगे, लेकिन जब मैं निम्नलिखित करने की कोशिश की:
double i = -9;
float f2= fabs(i); // This will work fine
क्या मैं पहली बार कोड से समझते हैं कि यह है कि संकलित नहीं होगा क्योंकि fabs(-9)
को डबल की आवश्यकता है, और कंपाइलर -9 से -9.0 में परिवर्तित नहीं हो सका, लेकिन दूसरे कोड में संकलक संकलित समय पर i=-9
i=-9.0
में कनवर्ट करेगा ताकि fabs(i)
ठीक काम करेगा।
कोई बेहतर स्पष्टीकरण?
एक और बात, क्यों संकलक fabs(-9)
स्वीकार नहीं कर सकता है और int मान को स्वचालित रूप से डबल में बदलने के लिए सी # में क्या है?
[*]:
Error: more than one instance of overloaded function "fabs" matches the argument list:
function "fabs(double _X)"
function "fabs(float _X)"
function "fabs(long double _X)"
argument types are: (int)
कोई कंपाइलर त्रुटियां यहां नहीं: http://coliru.stacked-crooked.com/a/80c5484bda892461 – NathanOliver