2015-10-22 9 views
7

में कनवर्ट करना मैं एक इलीक्सिर एक्सपोनेंट को पूर्णांक में कैसे परिवर्तित करूं?एक्सपीरेंट नंबर में एक इलीक्सिर संख्या को पूर्णांक

मैं 1.0e2 से 100 जैसे कुछ रूपांतरित करना चाहता हूं। मैंने समाधान के लिए चारों ओर गुगल किया है लेकिन एक खोजने में सक्षम नहीं है।

+3

बाहर कर देता है आप 'TRUNC (संख्या)' उपयोग कर सकते हैं और यह एक पूर्णांक के लिए प्रतिपादक अंकन में एक नंबर परिवर्तित कर देंगे। 'trunc (1.0e2) => 100' नोट - यह फ्लोट के लिए काम नहीं करता है, क्योंकि यह दशमलव को छोटा कर देगा। –

+0

'1.0e2' एक फ्लोट है। '100' एक पूर्णांक है। क्या आप फ्लोट से int में कनवर्ट करने की कोशिश कर रहे हैं? – jdl

उत्तर

6

आप क्या कहते प्रतिपादक वास्तव में सिर्फ एक चल बिन्दु संख्या 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 
+1

पूरी प्रतिक्रिया के लिए धन्यवाद! –

संबंधित मुद्दे