在F#中为项目编码时,我已经达到了将char转换为int的程度。即。
let c = '3'
c |> int //this will however give the ascii value of 3 I believe
我的问题是,在char只保存数字的情况下,将char转换为字符串或其他类型时,将单个char转换为int的最佳方法是什么?
答案 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