2010-11-09 12 views
5

क्या हैकेल में कोई फ़ंक्शन है जो int से float में परिवर्तित होता है, और char से float में परिवर्तित होता है?हास्केल int फ्लोट और चार फ्लोट करने के लिए int

मुझे पता है कि एक ऐसा कार्य है जो चार से int और int से char में परिवर्तित होता है।

+0

भी देखें http://stackoverflow.com/questions/3968265/integer-to-float –

उत्तर

7

इस तरह के प्रश्नों का उत्तर hoogle के साथ दिया जा सकता है।

digitToInt :: Char -> Int 

एक समारोह के लिए अपनी जरूरत हालांकि: -

उदाहरण के लिए, के लिए Hoogle "चार> इंट" और पहले समारोह में यह करना होगा सूचीबद्ध (ord, अन्य उत्तर में उल्लेख किया है, दूसरा परिणाम है) :: Char -> Floatread (तीसरी नीचे परिणाम) या digitToInt का एक संयोजन और एक समारोह :: Int -> Float का उपयोग कर जनादेश करता है:

digitToFloat = toEnum . digitToInt 
+0

मुझे पता था कि digitToInt जैसे फ़ंक्शन थे, लेकिन मैं इसे देखने के लिए बहुत आलसी था। धन्यवाद! –

10

fromIntegral इंट से परिवर्तित कर देंगे फ्लोट करने के लिए।

फ़्लोट करने के लिए चार के लिए, यह निर्भर करता है। आप (अब के लिए अनदेखी यूनिकोड) एक चार की ASCII मूल्य प्राप्त करना चाहते हैं, Data.Char.ord का उपयोग करें:

Prelude Data.Char> fromIntegral (ord '2') :: Float 
50.0 

आप एक चार के अंकों को पढ़ने के लिए चाहते हैं, यानी '2' मूल्य 2 हो जाता है, आप ऐसा कर सकते हैं:

char2float :: Char -> Float 
char2float n = fromInteger (read [n]) 

Prelude Data.Char> char2float '2' 
2.0 

आप इस का एक बहुत तैयार करने वाले हैं, तो आप एक वास्तविक पार्स लाइब्रेरी का उपयोग वास्तविक त्रुटि हैंडलिंग पाने के लिए सोच सकते हैं।

+2

आप 'char2float सिर्फ कर सकते हैं n = [n] पढ़ '। 'से इंटेगर 'की कोई ज़रूरत नहीं है। – sepp2k

0

अगर मैं यह सही है, तो आप इन उद्देश्यों के लिए पढ़ें typeclass उपयोग कर सकते हैं मिलता है। और इसका मतलब है कि आप कुछ बुनियादी प्रकारों को कुछ अन्य मूल प्रकारों में परिवर्तित कर सकते हैं।

एक फ्लोट करने के लिए इंट से परिवर्तित:

Prelude> 1::Float 
1.0 

लेकिन मैं नहीं जानता कि चार से परिवर्तित फ्लोट करने के लिए जिसका अर्थ है - हो सकता है [चार] फ्लोट या स्ट्रिंग के लिए फ्लोट करने के लिए? वैसे भी:

Prelude> read("1")::Float 
1.0 

इस लिंक चेक आउट: http://book.realworldhaskell.org/read/using-typeclasses.html

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