如何将输入的结果转换为F#中的int?

时间:2016-10-21 13:03:09

标签: f#

我正在学习f#并做一个要求用户输入数字的功能。然后,该功能将显示用户输入,如果是正数或负数。但是,当我尝试运行程序时,它会出错,并声明输入是字符串而不是int。我不知道将函数输出转换为字符串的方法。

    open System

let sign num  =
   if num > 0 then "positive"
   elif num < 0 then "negative"
   else "zero"

let main() =
   Console.Write("please enter a number:")
   let input = Console.ReadLine()
   Console.Write("The number {0}", sign 1)
   System.Console.ReadKey() |> ignore


main()

1 个答案:

答案 0 :(得分:6)

使用 (int)input int input。在封面下,它解析输入并返回一个int或抛出一个System.FormatException。

另一种选择是使用Int32的TryParse方法,并将结果和成功指标都作为元组返回。您也可以在同一行中解构元组:

let (ok,number)= System.Int32.TryParse input
let message=if ok then 
                sprintf "The number %i" i 
            else
                sprintf "%s is not a number" input
Console.WriteLine message