2009-01-05 52 views
3

我有一些數據處理代碼,最後吐出csv。如何一般刪除F#度量單位

我開始升級它無處不在添加度量單位,但現在我有我的CSV功能相關的問題:

val WriteCSV : string -> 'a list array -> 'b list -> string -> unit 

(參數是文件名,列陣列,列標題,分隔符)

我之前發送[| s; x; y |]到WriteCSV,我現在有一個問題,因爲我不能發送[| skm; XMM;青運|]。

我試着寫一個函數一般去除度量單位,但它不工作。

let removeUnit (n:float<_>) = n/1.0<_> 

我的問題是:

  • 爲什麼它不工作?
  • 它可以使工作?
  • 有沒有解決這個問題的另一種方法?

回答

7

如果我的問題沒有錯,將它轉換爲「純」浮點數可以刪除單元。 例如:

[<Measure>] type m 
[<Measure>] type km 

let removeUnit (x:float<_>) = 
    float x 

let foo = removeUnit 2.6<m> 
let foo2 = removeUnit 2.1<km> 

VAL removeUnit:浮動<「U> - >浮

+0

優秀,謝謝。 – Benjol 2009-01-05 08:08:30