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

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

<TotalInclTax>4194</TotalInclTax>

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

<TotalInclTax>4194.00<TotalInclTax>
4

2 回答 2

4

您可以稍微调整您的课程以自定义 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); }
}
于 2013-02-19T21:50:50.310 回答
1

如果您使用反序列化方法来检索值,应该没有问题。如果您尝试在小数点之后序列化具有非零值的值(如 4672.34),它应该放置小数点和其他数字

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

于 2013-02-19T21:51:38.757 回答