F# - 将char转换为int

时间:2017-03-15 20:38:11

标签: f# functional-programming

在F#中为项目编码时,我已经达到了将char转换为int的程度。即。

let c = '3'
c |> int //this will however give the ascii value of 3 I believe

我的问题是,在char只保存数字的情况下,将char转换为字符串或其他类型时,将单个char转换为int的最佳方法是什么?

3 个答案:

答案 0 :(得分:13)

假设您已经验证了该字符并且知道它是一个ASCII数字,您可以执行以下操作:

let inline charToInt c = int c - int '0'

let c = '3'
c |> charToInt

Online Demo

N.b。如果您最终需要float而不是int,则会有内置机制:System.Char.GetNumericValue

答案 1 :(得分:1)

如果您要转换a-> 0,b-> 1,.....,z->26。那么您可以这样做

let let2nat (letter : char) = int letter - int 'a'

如果您只想要ascii,则可以这样做

let let2ascii (let2ascii : char) = int let2ascii

答案 2 :(得分:-1)

首先转换为字符串:

c |> sprintf "%c" |> int