जवाबों:
उसी जावदोक के अनुसार:
यदि तर्क NaN
या अनंत या सकारात्मक शून्य या नकारात्मक शून्य है, तो परिणाम तर्क के समान है। एक के साथ ऐसा नहीं कर सकते int
।
सबसे बड़ा double
मूल्य भी सबसे बड़ा है int
, इसलिए यह एक होना होगा long
।
यह सटीकता के लिए है। डबल डेटा-टाइप में 53 बिट मंटिसा है। अन्य बातों के अलावा, इसका मतलब है कि एक डबल सटीक नुकसान के बिना पूरे 2 ^ 53 तक का प्रतिनिधित्व कर सकता है।
यदि आप एक पूर्णांक में इतनी बड़ी संख्या को संग्रहीत करते हैं तो आपको एक अतिप्रवाह मिलेगा। इंटीजर में केवल 32 बिट्स होते हैं।
पूर्णांक को एक डबल के रूप में वापस करना यहां सही काम है क्योंकि यह पूर्णांक की तुलना में बहुत अधिक उपयोगी नंबर-रेंज प्रदान करता है।
दूसरों ने आपको बताया है कि क्यों, मैं आपको यह बताने जा रहा हूं कि आप कैसे सही तरीके से गोल करना चाहते हैं। यदि आप केवल सकारात्मक संख्याओं का उपयोग करने जा रहे हैं, तो आप इस कथन का उपयोग कर सकते हैं:
int a=(int) 1.5;
हालाँकि, (int) हमेशा 0 की ओर गोल होता है। इस प्रकार, यदि आप एक ऋणात्मक संख्या करना चाहते हैं:
int a=(int) -1.5; //Equal to -1
मेरे मामले में, मैं ऐसा नहीं करना चाहता था। मैंने राउंडिंग करने के लिए निम्न कोड का उपयोग किया, और यह सभी किनारे के मामलों को अच्छी तरह से संभालने के लिए लगता है:
private static long floor(double a)
{
return (int) Math.floor(a);
}
(int) Math.floor(a)
? यह शायद अधिक कुशल है और यह छोटा है।
(int) Math.floor(a)
बस लिख सकते हैं (int) a
।
जिस तरह जावा में एक पूर्णांक और एक फ्लोटिंग पॉइंट डिवीज़न होता है, उसी तरह फ़्लोर करने के लिए पूर्णांक और फ़्लोटिंग पॉइंट तरीके होते हैं:
double f = Math.floor(x);
या
int k = (int) x;
लेकिन आपको हमेशा परिमित परिशुद्धता अंकगणित के साथ फर्श का उपयोग करने में सावधानी बरतने की आवश्यकता है: एक्स की आपकी गणना में 1.99999999 जैसी कुछ उपज हो सकती है जो कि दोनों रूपों द्वारा 2 के लिए नहीं 1 से 1 तक फ़्लार की जाएगी। वहाँ कई एल्गोरिदम हैं जो कुछ इनपुट मूल्यों के लिए गलत परिणाम उत्पन्न करने से बचने के लिए इस सीमा के आसपास काम करने की आवश्यकता है।
ताकि गणना की एक श्रृंखला के माध्यम से त्रुटि और अन्य गैर पूर्णांक मान सही ढंग से कैस्केड कर सकें।
उदाहरण के लिए, यदि आप Math.floor में Not (संख्या) नहीं दर्ज करते हैं, तो वह इसे पास कर देगा।
यदि यह पूर्णांक लौटा तो यह इन स्थितियों या त्रुटियों को पास नहीं कर सकता है, और आप पहले की गणना से बुरे परिणाम प्राप्त कर सकते हैं जो अच्छे लगते हैं लेकिन आगे की प्रक्रिया के लिए गलत हैं।