无论如何,我可以将string
转换为<m>
,其中m
是一种度量类型?
答案 0 :(得分:2)
我会使用像
这样的东西let convert (s:string) : float<m> =
float s
|> LanguagePrimitives.FloatWithMeasure
答案 1 :(得分:2)
除kvb方法之外的另一个选择是将原始浮点值乘以1.0<m>
:
let convert (s:string) =
(float s) * 1.0<m>
答案 2 :(得分:2)
要添加另一种选择,我可能会写:
let inline convertToMeters x : float<m> = unbox (box (float x));;
您可以使用该函数将任何可以转换为float
的类型转换为类型float<m>
(这很好,因为它也适用于整数等,但不是所有随机类型,如作为System.Random
)。您可以从类型签名中看到这一点:
val inline convertToMeters :
^a -> float<m> when ^a : (static member op_Explicit : ^a -> float)