2011-04-10 68 views
12

我有一個簡單的問題,我一直無法弄清楚。我有一個應該從輸入讀取浮點數的程序。問題是它會以字符串的形式出現,我不能爲我的生活弄清楚如何將它轉換爲浮動(是的,我是一個完整的newb)。F#將字符串轉換爲浮點數

let searchString = args.[0] 
let myFloat = hmm hmmm hmmmm 
+0

要格式化代碼,請在每行之前放置四個空格,或選擇它並在編輯器中按下按鈕。有關更多格式化幫助,請參閱[Markdown編輯幫助](http://stackoverflow.com/editing-help)頁面。 – 2011-04-10 19:46:38

回答

9

let myFloat = float searchString

這麼簡單。

+1

請參閱@Thomas。浮動字符串表示取決於文化。 – 2013-06-05 22:24:29

+0

解析失敗時會發生什麼? – fahadash 2014-07-13 19:52:44

+0

@fahadash拋出System.FormatException異常。 – 2014-07-14 16:06:35

15

conversion in the other way上有一個相關的問題。這有點棘手,因爲浮點格式取決於當前的操作系統文化。 float函數適用於不變文化格式的數字(如「3.14」)。如果您有依賴於文化的格式(例如,某些國家/地區爲「3,14」),則需要使用Single.Parse

例如,我的機器上(與捷克文化設置,使用「3,14」):

> float "1.1";; 
val it : float = 1.1 
> System.Single.Parse("1,1");; 
val it : float32 = 1.10000002f 

兩個函數拋出異常,如果所謂的其他方式輪。 Parse方法也有一個過載,其中需要CultureInfo,您可以在其中明確指定文化