जब मैं Math.ceil(5.2)
पर कॉल करता हूं तो वापसी double
6.0
है। मेरा प्राकृतिक झुकाव यह सोचना था कि Math.ceil(double a)
long
लौटाएगा।Math.ceil एक डबल वापस क्यों करता है?
ceil(double a)
रिटर्न छोटी (नकारात्मक अनंत को निकटतम)
double
मूल्य कि तर्क से कम नहीं है और एक गणितीय पूर्णांक के बराबर है: प्रलेखन से।
लेकिन long
के बजाय double
वापस क्यों परिणाम एक पूर्णांक है? मुझे लगता है कि इसके पीछे कारण समझने से मुझे जावा को थोड़ा बेहतर समझने में मदद मिल सकती है। यह मुझे यह जानने में भी मदद कर सकता है कि क्या मुझे long
पर कास्ट करके परेशानी हो जाएगी, उदा।
long b = (long)Math.ceil(a);
है कि मैं क्या लगता है कि यह होना चाहिए? मुझे डर है कि कुछ सीमा मामले हो सकते हैं जो समस्याग्रस्त हैं।
देखें http://stackoverflow.com/questions/3412449/why-does-math-round-return-a-long-but-math-floor-return-a-double – starblue