【问题标题】:How to generically remove F# Units of measure如何一般地删除 F# 度量单位
【发布时间】:2010-09-29 13:45:49
【问题描述】:

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

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

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

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

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

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

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

我的问题是:

  • 为什么它不起作用?
  • 可以让它工作吗?
  • 还有其他方法可以解决这个特殊问题吗?

【问题讨论】:

    标签: f# units-of-measurement


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-19
      • 2019-11-12
      • 2016-04-06
      • 2010-10-02
      • 2012-07-05
      • 2010-09-07
      • 2011-02-09
      相关资源
      最近更新 更多