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>
您可以稍微调整您的类以自定义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类型的变量中。