C# serialize decimal to xml

前端 未结 2 850
情深已故
情深已故 2021-02-18 14:01

I got a decimal property, like

[XmlElementAttribute(DataType = \"decimal\")] decimal Price

The problem is that I wanna force it to serialize always

相关标签:
2条回答
  • 2021-02-18 14:50

    You could add XmlIgnore to the actual decimal property and introduce a new property PriceAsString which returns, eh, the price as string (in 10.50 format).

    You could of course also implement IXmlSerializable and do everything yourself.

    However, none of these ways really rocks, and you already stated you were not going to go down this road anyway...

    0 讨论(0)
  • 2021-02-18 14:50

    I was having the opposite problem. My decimals were serializing with 4 decimal places, even though they were all 4 zeroes. I discovered that if I call decimal.Round(value, 2) then it serializes to 2 decimal places. It would appear that the Decimal type remembers what you last rounded it too when it is serialized.

    I was suspicious of the suggestion, but it worked that simply. Even though the value didn't need rounding, calling Round changed how many decimal places showed up in serialization.

    0 讨论(0)
提交回复
热议问题