【问题标题】:How to serialize / deserialize a double value independent of culture如何序列化/反序列化与文化无关的双重值
【发布时间】:2011-11-18 13:08:35
【问题描述】:

如何对双精度值进行序列化/反序列化,以便在具有不同小数点符号的系统上对其进行读写?

写:

双 d; d.ToString();

阅读:

double d = (double)Convert.ChangeType(serialized_value, new Double().GetType());

【问题讨论】:

    标签: c# serialization deserialization


    【解决方案1】:

    你必须指定一个不变的格式提供者

    double d = 2.0;
    
    var invariantString = Convert.ToString(d, CultureInfo.InvariantCulture);
    
    var d2 = Convert.ToDouble(invariantString, CultureInfo.InvariantCulture);
    

    【讨论】:

    • 这不适用于 RU-ru 文化。例如: var str = "0,6"; var d2 = Convert.ToDouble(str, CultureInfo.InvariantCulture); // 这里 d2 是“6.0”而不是“0.6”
    猜你喜欢
    • 2021-06-10
    • 1970-01-01
    • 2011-06-25
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-14
    相关资源
    最近更新 更多