F# - 将字符串转换为<m>?</m>

时间:2011-03-11 14:20:55

标签: f#

无论如何,我可以将string转换为<m>,其中m是一种度量类型?

3 个答案:

答案 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)