繁体   English   中英

在C#中使用什么格式进行数字的xml序列化?

[英]What format is used for xml-serialization of numbers in C#?

我写的时候:

var d = 12.34D;
d.ToString();

它给出"12,34" ,但当我用双字段序列化对象时,它给出"12.34"

这是因为XmlSerializer使用了一些特定的格式/文化? 到底是什么? 我查看了Double的源代码,但没有看到IXmlSerializable实现。 谢谢。

XmlSerializerWriter使用XmlConvert.ToString来转换值。

相关部分从类是这个

return value.ToString("R", NumberFormatInfo.InvariantInfo);

所以它使用了不变文化,它恰好输出符合XML RFC的字符串(所以作为小数分隔符的句号)。

格式说明符"R" 在此处记录

往返(“R”)格式说明符尝试确保将转换为字符串的数值解析回相同的数值。 仅对Single,Double和BigInteger类型支持此格式。

这意味着在反序列化字符串值时,另一端将产生相同的double结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM