[英]More elegant way to do CultureInvariant Double.parse in F#
我有一个字符串格式的数字数组(例如[|“1”;“2”;“3”... |])并希望将它们转换为双精度数,但我想以CultureInvariant的方式进行。 我当然可以这样做:
[|"1"; "2"|] |> Array.map (fun (a) -> Double.Parse(a, CultureInfo.InvariantCulture))
但是,有没有办法这样做:
[|"1"; "2"|] |> Array.map Double.Parse
,但是使用CultureInfo.InvariantCulture? 此代码看起来更具可读性。 换句话说,有没有办法将CultureInfo.InvariantCulture传递给flow中的Double.parse,或者为所有程序/脚本全局设置CultureInfo.InvariantCulture。
非常简单地定义辅助函数并使用它:
let ParseInvariant a = Double.Parse(a, CultureInfo.InvariantCulture)
let b = [|"1"; "2"|] |> Array.map ParseInvariant
或定义扩展方法:
type Double with
static member ParseInvariant a = Double.Parse(a, CultureInfo.InvariantCulture)
let b = [|"1"; "2"|] |> Array.map Double.ParseInvariant
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.