Xml序列化浮点值

本文关键字:序列化 Xml | 更新日期: 2023-09-27 18:00:06

Invoice invoice = new Invoice();
invoice.TotalInclTax = 4194.00f;
invoice.serialize();

我需要一些序列化浮点值的帮助。目前它序列化4194.00如下:

<TotalInclTax>4194</TotalInclTax>

但是,我想要这样的东西:

<TotalInclTax>4194.00<TotalInclTax>

Xml序列化浮点值

您可以稍微调整您的类以自定义TotalInclTax的序列化方式:

static CultureInfo ci = CultureInfo.InvariantCulture;
float _TotalInclTax = 0;
[XmlIgnore]
public float TotalInclTax 
{
    get { return _TotalInclTax ; }
    set { _TotalInclTax  = value; }
}
[XmlElement("TotalInclTax")]
public string CustomTotalInclTax
{
    get { return TotalInclTax.ToString("#0.00", ci); }
    set { float.TryParse(value, NumberStyles.Float, ci, out _TotalInclTax); }
}

如果使用反序列化方法来检索值,应该不会有问题。如果你试图在小数点后序列化一个非零值的值,比如4672.34 ,它应该放小数点和其他数字

但是,如果出于其他原因,您绝对需要控制小数点格式,我会说将其序列化为字符串,并使用float的字符串打印格式来设置字符串值,并将字符串值读取回float类型的变量中。

相关文章: