2013-02-24 113 views
11

जॉन केरमेक की पूजा के रूप में, मैं (ftp://ftp.idsoftware.com/idstuff/doom3/source/CodeStyleConventions.doc पर यदि आप रुचि रखते हैं) आईडी टेक सार्वजनिक रूप से उपलब्ध कोडिंग कन्वेंशनों दस्तावेज़ पढ़ रहा था, और एक सम्मेलन में आए मैं पूरी तरह समझ में नहीं आया:"1.0f" और "1.f" के बीच क्या अंतर है?

उपयोग परिशुद्धता फ्लोटिंग पॉइंट वैल्यू के लिए विनिर्देश जब तक कि डबल की स्पष्ट आवश्यकता न हो।

float f = 0.5f

के बजाय

float f = 0.5;

और

float f = 1.0f;

के बजाय

float f = 1.f;

ये अलग कैसे हैं?

मैं पहले उदाहरण में दोनों के बीच का अंतर समझ सकता हूं (बाद वाला हुड के नीचे एक डबल-टू-फ्लोट रूपांतरण कर रहा है), हालांकि मुझे संदेह होगा कि इसे पकड़ने के लिए केवल एक बेवकूफ कंपाइलर की आवश्यकता होगी और उत्पादन होगा बिना रनटाइम अंतर के लिए एक ही बाइटकोड।

लेकिन क्या कोई ऐसा मामला है जहां आपके फ़्लोटिंग पॉइंट मूल्य घोषणा में पिछला 0 जोड़ना चीजों को बदलता है?

+1

यह संदर्भ में एक टाइपो की तरह लगता है, क्योंकि दोनों में से एक सटीक विनिर्देश है। हालांकि 1.0 एफ अभी भी अधिक पठनीय है। –

+0

लेखक शायद 'फ्लोट एफ = 1.0 एफ' '' फ्लोट एफ = 1.0; 'के बजाय' फ्लोट एफ = 1.0 एफ; 'का सुझाव देना था; 'एफ' प्रत्यय की उपस्थिति या अनुपस्थिति बिंदु है। (और आमतौर पर 'फ्लोट' की बजाय 'डबल' का उपयोग करना बेहतर होता है।) –

+0

एक अच्छा कंपाइलर चेतावनी देना चाहिए यदि आप 'फ्लोट' के साथ 'फ्लोट' प्रारंभ करते हैं जिसका मूल्य 'फ्लोट 'में परिवर्तित होने पर बदलता है, लेकिन यह नहीं होना चाहिए , एक नियम के रूप में, एक ही कोड का उत्पादन करें जैसे कि निरंतर स्थिरता 'f' से चिपक गई हो। ऐसा इसलिए है क्योंकि कुछ अंक हैं जो पहली बार 'डबल' में परिवर्तित होते हैं और फिर 'फ्लोट' में परिवर्तित होने की तुलना में 'फ्लोट' तक अलग होते हैं। प्रोग्रामर के लिए जानबूझकर इनका उपयोग करना असामान्य होगा, लेकिन यह भाषा का वैध उपयोग है और जैसा कि बताया गया है संकलित किया जाना चाहिए। –

उत्तर

12

लेकिन क्या कोई ऐसा मामला है जहां आपके फ़्लोटिंग पॉइंट मूल्य घोषणा में पिछला 0 जोड़ना चीजों को बदलता है?

एकमात्र "चीज" जो शून्य जोड़ती है वह पठनीयता बदल जाएगी। परिणामी कोड बिल्कुल वही होगा, क्योंकि कंपेलरों की परवाह नहीं है, लेकिन शून्य पाठ के साथ निरंतर मानव पाठकों द्वारा पढ़ना आसान होगा।

+0

पठनीयता! अक्सर अनदेखा किया जाता है। – Johnsyweb

+2

केवल मनुष्यों के लिए अर्थपूर्ण, हां। पठनीयता के लिए, शायद नहीं। संख्याओं से निपटने वाले अधिकांश लोग एक सम्मेलन का पालन करते हैं जहां पीछे शून्य शून्य महत्वपूर्ण अंकों की संख्या दर्शाता है। –