4

我有一些数据操作代码,最后会吐出 csv。

我开始升级它以在任何地方添加度量单位,但现在我的 csv 函数出现问题:

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

(参数为文件名、列数组、列标题、分隔符)

在我之前将 [|s;x;y|] 发送到 WriteCSV 的地方,我现在遇到了问题,因为我无法发送 [|skm; 毫米; 嗯|]。

我尝试编写一个用于一般删除度量单位的函数,但它不起作用。

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

我的问题是:

  • 为什么它不起作用?
  • 它可以工作吗?
  • 有没有另一种方法来解决这个特定的问题?
4

1 回答 1

8

如果我的问题正确,则将其转换为“纯”浮点数会删除该单元。例如:

[<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> -> 浮动

于 2009-01-05T07:49:59.260 回答