Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F#将字符串转换为浮点_F#_Floating Point_Type Conversion - Fatal编程技术网

F#将字符串转换为浮点

F#将字符串转换为浮点,f#,floating-point,type-conversion,F#,Floating Point,Type Conversion,我有一个简单的问题,我还没有弄明白。我有一个程序应该从输入中读取一个浮点。问题是它将以字符串的形式出现,而我一辈子都不知道如何将它转换为浮点(是的,我是一个完全的新手) let myFloat=float searchString 就这么简单。上有一个相关的问题。这有点棘手,因为浮点格式取决于当前的操作系统区域性。float函数用于固定区域性格式(类似于“3.14”)中的数字。如果您的float格式与区域性相关(例如在某些国家/地区为“3,14”),则需要使用Single.Parse 例如,在我

我有一个简单的问题,我还没有弄明白。我有一个程序应该从输入中读取一个浮点。问题是它将以字符串的形式出现,而我一辈子都不知道如何将它转换为浮点(是的,我是一个完全的新手)


let myFloat=float searchString


就这么简单。

上有一个相关的问题。这有点棘手,因为浮点格式取决于当前的操作系统区域性。
float
函数用于固定区域性格式(类似于“3.14”)中的数字。如果您的float格式与区域性相关(例如在某些国家/地区为“3,14”),则需要使用
Single.Parse

例如,在我的机器上(使用捷克文化设置,使用“3,14”):


如果以相反的方式调用,这两个函数都会引发异常。
Parse
方法还有一个重载,它使用
CultureInfo
,您可以在其中明确指定区域性无副作用的
parseFloat函数如下所示:

let parseFloat s =
    match System.Double.TryParse(s) with 
    | true, n -> Some n
    | _ -> None
甚至更短:

let parseFloat s = try Some (float s) with | _ -> None

要设置代码格式,请在每行前面放置四个空格,或者选择它并按编辑器中的
{}
按钮。有关更多格式帮助,请参阅该页。请参阅@Thomas。浮点字符串表示取决于区域性。当它无法解析时会发生什么?@fahadash
System.FormatException
被抛出。请注意,
Single
是float32,要获得浮点,需要使用
Double.parse
或其更安全的近亲
Double.TryParse
let parseFloat s =
    match System.Double.TryParse(s) with 
    | true, n -> Some n
    | _ -> None
let parseFloat s = try Some (float s) with | _ -> None