आप क्या कहते प्रतिपादक वास्तव में सिर्फ एक चल बिन्दु संख्या scientific notation में लिखा है, कभी कभी भी घातीय संकेतन कहा जाता है। वास्तविक एक्सपोनेंट वास्तव में इस पूरी चीज़ का हिस्सा है। साथ में अपूर्णांश साथ यह हमें आसानी से बहुत बड़े और/या कम संख्या का प्रतिनिधित्व करने के लिए अनुमति देता है:
mantissa * (10^exponent)
तो अमृत में, कई अन्य भाषाओं में के रूप में, संख्या 1.23 * (10^5)
1.23e5
के रूप में लिखा जा सकता है। आप iex
में अपने उदाहरण संख्या 1.0e2
लिखते हैं, तो आप देखेंगे कि यह वास्तव में सिर्फ चल बिन्दु संख्या के शीर्ष पर एक सुविधा है देखेंगे:
iex> 1.0e2
100.0
तो सवाल यह वास्तव में होना चाहिए: "मैं एक करने के लिए एक नाव परिवर्तित पूर्णांक? "। इसका जवाब है कि आप इस लक्ष्य को हासिल करने के लिए निम्न कार्यों में से एक का उपयोग कर सकते है:
Kernel.round/1
- दौर
Kernel.trunc/1
- ड्रॉप अंक दशमलव बिंदु
Float.round/2
के बाद - परिशुद्धता
Float.floor/2
साथ दौर - परिशुद्धता
Float.ceil/2
- परिशुद्धता
के साथ दौर
Kernel
फ़ंक्शन allowed in guard tests हैं, और आपको उन्हें कॉल करने के लिए Kernel.
को सामने रखने की आवश्यकता नहीं है। Float
फ़ंक्शंस अतिरिक्त रूप से दशमलव बिंदु के बाद कुछ अंकों को संरक्षित करने के लिए आपको एक परिशुद्धता निर्दिष्ट करने की अनुमति देता है। आपके उदाहरण के साथ यह वास्तव में कोई फर्क नहीं पड़ता कि आप किस का उपयोग करते हैं, क्योंकि 100.0
एक पूर्ण संख्या है। कार्यों ऊपर उल्लेख किया है लेकिन सबसे अच्छा एक अलग संख्या के साथ चित्रित किया गया है के व्यवहार का कहना है 1.55
:
iex> round(1.55)
2
iex> trunc(1.55)
1
iex> Float.round(1.55)
2.0
iex> Float.round(1.55, 1)
1.6
iex> Float.floor(1.55)
1.0
iex> Float.floor(1.55, 1)
1.5
iex> Float.ceil(1.55)
2.0
iex> Float.ceil(1.55, 1)
1.6
स्रोत
2015-10-23 05:41:30
बाहर कर देता है आप 'TRUNC (संख्या)' उपयोग कर सकते हैं और यह एक पूर्णांक के लिए प्रतिपादक अंकन में एक नंबर परिवर्तित कर देंगे। 'trunc (1.0e2) => 100' नोट - यह फ्लोट के लिए काम नहीं करता है, क्योंकि यह दशमलव को छोटा कर देगा। –
'1.0e2' एक फ्लोट है। '100' एक पूर्णांक है। क्या आप फ्लोट से int में कनवर्ट करने की कोशिश कर रहे हैं? – jdl