Есть ли функция в haskell, которая преобразует из int в float и из char, чтобы плавать?Haskell int float и char to float
Я знаю, что существует функция, которая преобразует из char в int и int в char.
Есть ли функция в haskell, которая преобразует из int в float и из char, чтобы плавать?Haskell int float и char to float
Я знаю, что существует функция, которая преобразует из char в int и int в char.
На это можно ответить hoogle.
Например, Hoogle для «Чара -> Int» и первая функция в списке будет делать это (ord
, упомянутой в других ответах, это второй результат):
digitToInt :: Char -> Int
Хотя ваша потребность для функции :: Char -> Float делает мандат, используя read
(третий результат вниз) или комбинацию digitToInt и функцию :: Int -> Float:
digitToFloat = toEnum . digitToInt
Я знал, что существует функция типа digitToInt, но мне было слишком лениво искать ее. Благодаря! –
вы попробуйте:
intToFloat :: Int -> Float
intToFloat n = fromInteger (toInteger n)
fromIntegral
будет конвертировать из Int в Float.
Для Char to Float, это зависит. Если вы хотите, чтобы получить значение ASCII из полукокса (не обращая внимания Unicode в настоящее время), используйте 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
Если вы собираетесь делать много этого, вы можете рассмотреть возможность использования фактической библиотеки синтаксического анализа, чтобы получить фактическую обработку ошибок.
Вы можете просто сделать 'char2float п = читать [п] '. Нет необходимости в 'fromInteger'. – sepp2k
Если я правильно, вы можете использовать чтение класса типов для этих целей. И это означает, что вы можете преобразовать некоторые базовые типы в некоторые другие базовые типы.
Преобразование из Int в Float:
Prelude> 1::Float
1.0
НО Я не знаю, что означает преобразование из полукокса в Float - возможно [Char] для поплавка или Строка Float? В любом случае:
Prelude> read("1")::Float
1.0
Проверить эту ссылку: http://book.realworldhaskell.org/read/using-typeclasses.html
Смотрите также http://stackoverflow.com/questions/3968265/integer-to-float –