2010-11-09 5 views
5

Gibt es eine Funktion in haskell, die von int in float und von char in float konvertiert?Haskell int float und char float

Ich weiß, dass es eine Funktion gibt, die von char in int und int in char konvertiert.

+0

Siehe auch http://stackoverflow.com/questions/3968265/integer-to-float –

Antwort

7

Fragen wie diese können mit hoogle beantwortet werden.

Zum Beispiel Hoogle für „Char -> Int“ und die erste Funktion aufgelistet wird es tun (ord, in anderen Antworten erwähnt, ist das zweite Ergebnis):

digitToInt :: Char -> Int 

Obwohl Ihre Notwendigkeit für eine Funktion mit read (dritte Folge nach unten) oder eine Kombination aus digitToInt und eine Funktion :: Char -> Float tut Mandat :: Int -> Float:

digitToFloat = toEnum . digitToInt 
+0

Ich wusste, dass es eine Funktion wie digitToInt gab, aber ich war zu faul, danach zu suchen. Vielen Dank! –

10

fromIntegral wird von Int konvertieren zu schweben.

Für Char zu schweben, es hängt davon ab. Wenn Sie den ASCII-Wert eines Char (ohne Berücksichtigung von Unicode jetzt) ​​erhalten möchten, verwenden Data.Char.ord:

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

Wenn Sie die Ziffer einer Char lesen möchten, dh '2' wird der Wert 2, Sie können dies tun:

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

Prelude Data.Char> char2float '2' 
2.0 

Wenn Sie viel, dies tun werden, könnten Sie eine tatsächliche Parsing-Bibliothek unter Verwendung der tatsächlichen Fehlerbehandlung zu erhalten.

+2

Sie können nur tun 'char2float n = read [n] '. Keine Notwendigkeit für 'fromInteger'. – sepp2k

0

Wenn ich es richtig machen, können Sie lesen typeclass für diese Zwecke verwenden. Und das bedeutet, dass Sie einige grundlegende Typen in einige andere Grundtypen konvertieren können.

Konvertieren von Int zu einem Float:

Prelude> 1::Float 
1.0 

ABER Ich weiß nicht, was bedeutet, von char Umwandlung zu Float - vielleicht [Char], um zu Float oder String Float? Wie dem auch sei:

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

Schauen Sie sich auf diesen Link: http://book.realworldhaskell.org/read/using-typeclasses.html