Existe-t-il une fonction dans haskell qui convertit de int en float et de char en float?Haskell int pour flotter et char pour flotter
Je sais qu'il existe une fonction qui convertit de char en int et int en char.
Existe-t-il une fonction dans haskell qui convertit de int en float et de char en float?Haskell int pour flotter et char pour flotter
Je sais qu'il existe une fonction qui convertit de char en int et int en char.
Des questions comme celles-ci peuvent être résolues avec hoogle.
Par exemple, Hoogle pour « Char -> Int » et la première fonction figurent sur la liste faire (ord
, mentionné dans d'autres réponses, est le deuxième résultat):
digitToInt :: Char -> Int
Bien que votre besoin d'une fonction :: Char -> Float ne commande à l'aide read
(troisième résultat vers le bas) ou une combinaison de digitToInt et une fonction :: Int -> Float:
digitToFloat = toEnum . digitToInt
Je savais qu'il y avait une fonction comme digitToInt, mais j'étais trop paresseux pour la rechercher. Merci! –
Avez-vous essayé:
intToFloat :: Int -> Float
intToFloat n = fromInteger (toInteger n)
fromIntegral
va convertir Int Float.
Pour Char to Float, cela dépend. Si vous souhaitez obtenir la valeur ASCII d'un Char (en ignorant Unicode pour l'instant), utilisez Data.Char.ord:
Prelude Data.Char> fromIntegral (ord '2') :: Float
50.0
Si vous voulez lire le chiffre d'un char, à savoir '2'
devient la valeur 2
, vous pouvez le faire:
char2float :: Char -> Float
char2float n = fromInteger (read [n])
Prelude Data.Char> char2float '2'
2.0
Si vous allez faire beaucoup de cela, vous pouvez envisager d'utiliser une bibliothèque d'analyse réelle pour obtenir le traitement des erreurs réelles.
Vous pouvez simplement faire 'char2float n = lecture [n] '. Pas besoin de 'fromInteger'. – sepp2k
Si je bien, vous pouvez utiliser Lire à ces fins classe de types. Et cela signifie que vous pouvez convertir certains types de base à d'autres types de base.
Conversion de Int à un flotteur:
Prelude> 1::Float
1.0
MAIS Je ne sais pas ce qui signifie la conversion de char à flotteur - peut-être [Char] à flotteur ou chaîne à flotteur? Quoi qu'il en soit:
Prelude> read("1")::Float
1.0
Vérifiez ce lien: http://book.realworldhaskell.org/read/using-typeclasses.html
Voir aussi http://stackoverflow.com/questions/3968265/integer-to-float –