C#序列化十进制到xml

标签 c# xml serialization

我有一个小数属性,比如

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

问题是我想强制它始终以 2 的精度进行序列化,但如果价格为 10.50,它将被序列化为 XML,如 <Price>10.5</Price> .

有什么方法可以强制执行它(无需创建新属性或更改此属性的获取方式?我正在寻找某种方法来执行此操作,仅将模式发送到 XmlSerializer(或 XmlElementAttribute)或任何智能方式这样做吗?

谢谢

最佳答案

我遇到了相反的问题。我的小数位序列化为 4​​ 个小数位,即使它们都是 4 个零。我发现如果我调用 decimal.Round(value, 2) 然后它序列化到 2 个小数位。看起来 Decimal 类型记住您在序列化时也对它进行了四舍五入。

我对这个建议持怀疑态度,但它很简单。即使该值不需要舍入,调用 Round 也会更改序列化中显示的小数位数。

关于C#序列化十进制到xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1613307/

相关文章:

c# - JArray.Remove(JToken) 不删除

php - 使用 AJAX 提交表单,将表单数据传递给 PHP,无需刷新页面

c# - 将传感器数据对象转换为字节数组 (C#)

c# - 从字节数组解包整数的惯用C#是什么?

c# - 将 SolidColorBrush 绑定(bind)到 ControlTemplate 背景

c# - EmguCV - 匹配模板

java - 如何使用 XPath 解析以下 'tags' 值?

python - 使用 Python 将 XML 文档插入现有 XML

php - 使用 DOMDocument 加载包含命名空间的 HTML

Django Rest Serializer.data 是一个空的 OrderedDict()