如何将带有度量单位的小数转换为具有相同单位的浮点数?

Joh*_*ood 4 f# units-of-measurement

我无法弄清楚如何将带有度量单位的小数转换为带有度量单位的浮点数.

我一直在尝试类似于以下的代码:

let toFloat (value: decimal<'T>) =
    let value = float (value / LanguagePrimitives.GenericOne<decimal<'T>>)
    value * LanguagePrimitives.GenericOne<float<'T>> 
Run Code Online (Sandbox Code Playgroud)

这个方法产生一个decimal - > float的签名,这不是我想要的.我正在尝试创建一个decimal <'T> - > float <'T>类型的函数.

有可能创建这样的功能吗?如果是这样,它会是什么样子?

Mge*_*etz 5

我在http://www.tryfsharp.org上看了一遍,看起来这应该有效:

let toFloat (value: decimal<'T>) =
    LanguagePrimitives.FloatWithMeasure<'T>(float (decimal value))
Run Code Online (Sandbox Code Playgroud)