मैं गो में एक साधारण विभाजन करने की कोशिश कर रहा हूं।
fmt.Println(3/10)
यह 0.3 के बजाय 0 प्रिंट करता है। यह अजीब तरह का है। क्या कोई कृपया बता सकता है कि इसके पीछे क्या कारण है? मैं गो में विभिन्न अंकगणितीय ऑपरेशन करना चाहता हूं।
धन्यवाद
मैं गो में एक साधारण विभाजन करने की कोशिश कर रहा हूं।
fmt.Println(3/10)
यह 0.3 के बजाय 0 प्रिंट करता है। यह अजीब तरह का है। क्या कोई कृपया बता सकता है कि इसके पीछे क्या कारण है? मैं गो में विभिन्न अंकगणितीय ऑपरेशन करना चाहता हूं।
धन्यवाद
जवाबों:
अभिव्यक्ति 3 / 10
एक अनछुई स्थिर अभिव्यक्ति है। विनिर्देश लगातार अभिव्यक्ति के बारे में यह कहता है
यदि बाइनरी ऑपरेशन के ऑपरेशंस अलग-अलग प्रकार के अनछुए स्थिरांक हैं, तो ऑपरेशन और, गैर-बूलियन ऑपरेशन के लिए, परिणाम उस तरह का उपयोग करता है जो इस सूची में बाद में प्रकट होता है: पूर्णांक, रूण, फ्लोटिंग-पॉइंट, कॉम्प्लेक्स।
क्योंकि 3
और 10
अनपेड पूर्णांक स्थिरांक हैं, अभिव्यक्ति का मूल्य एक अनपेड पूर्णांक ( 0
इस मामले में) है।
ऑपरेंड में से एक फ्लोटिंग-पॉइंट स्थिर के परिणाम के लिए एक फ़्लोटिंग-पॉइंट स्थिरांक होना चाहिए। निम्न अभिव्यक्तियाँ अप्राप्त फ़्लोटिंग-पॉइंट स्थिरांक का मूल्यांकन करती हैं 0.3
:
3.0 / 10.0
3.0 / 10
3 / 10.0
टाइप किए गए स्थिरांक का उपयोग करना भी संभव है। निम्न अभिव्यक्तियाँ float64
स्थिरांक का मूल्यांकन करती हैं 0.3
:
float64(3) / float64(10)
float64(3) / 10
3 / float64(10)
ऊपर दिए गए किसी भी भाव को प्रिंट करना प्रिंट होगा 0.3
। उदाहरण के लिए, fmt.Println(3.0 / 10)
प्रिंट 0.3
।
fmt.Println(float64(3) / float64(10))
देता है 0.3
।