Haskell int浮动,char浮动

Jak*_*ake 5 floating-point int haskell

haskell中有一个函数,它从int转换为float,从char转换为float?

我知道有一个函数可以从char转换为int,int转换为char.

Joh*_*n L 10

fromIntegral 将从Int转换为Float.

对于Char to Float来说,这取决于.如果要获取Char的ASCII值(暂时忽略Unicode),请使用Data.Char.ord:

Prelude Data.Char> fromIntegral (ord '2') :: Float
50.0
Run Code Online (Sandbox Code Playgroud)

如果你想读取Char的数字,即'2'成为值2,你可以这样做:

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

Prelude Data.Char> char2float '2'
2.0
Run Code Online (Sandbox Code Playgroud)

如果您要做很​​多这样的事情,可以考虑使用实际的解析库来获得实际的错误处理.

  • 你可以做`char2float n = read [n]`.不需要`fromInteger`. (2认同)

Tho*_*son 7

这样的问题可以通过hoogle来回答.

例如,Hoogle为"Char - > Int"和列出的第一个函数将执行此操作(ord在其他答案中提到,是第二个结果):

digitToInt :: Char -> Int
Run Code Online (Sandbox Code Playgroud)

虽然你需要一个函数:: Char - > Float确实要求使用read(第三个结果向下)或者使用digitToInt和一个函数:: Int - > Float的组合:

digitToFloat = toEnum . digitToInt
Run Code Online (Sandbox Code Playgroud)