Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do i convert the result of the input into an int in F#? [duplicate]

Tags:

f#

I'm learning f# and doing a function which asks for the user to input a number. The function will then display the users input and if it's a positive or negative number. However, when I try running the program it errors and states that the input is a string instead of an int. I don't know a way to convert the function output into a string.

    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()
like image 397
Danny_P Avatar asked Mar 11 '23 20:03

Danny_P


1 Answers

Use (int)input int input. Under the covers this parses the input and returns an int or throws a System.FormatException.

Another option is to use Int32's TryParse method and return the both the result and success indicator as a tuple. You can also deconstruct the tuple in the same line :

let (ok,number)= System.Int32.TryParse input
let message=if ok then 
                sprintf "The number %i" number 
            else
                sprintf "%s is not a number" input
Console.WriteLine message
like image 196
Panagiotis Kanavos Avatar answered Apr 27 '23 12:04

Panagiotis Kanavos