我无法弄清楚如何将带有度量单位的小数转换为带有度量单位的浮点数。
我一直在尝试类似的代码:
let toFloat (value: decimal<'T>) =
let value = float (value / LanguagePrimitives.GenericOne<decimal<'T>>)
value * LanguagePrimitives.GenericOne<float<'T>>
此方法产生十进制的签名 - &gt;漂浮,这不是我想要的。我正在尝试创建一个十进制类型的函数&lt;'T&gt; - &GT;浮&LT;'T&GT;
是否可以创建这样的功能?如果是这样,它会是什么样子?
答案 0 :(得分:5)
我在http://www.tryfsharp.org上看了一遍,看起来这应该有效:
let toFloat (value: decimal<'T>) =
LanguagePrimitives.FloatWithMeasure<'T>(float (decimal value))