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

时间:2018-06-26 08:55:43

标签: c# xml-serialization

我写的时候:

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

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

是因为XmlSerializer使用某些特定的格式/区域性?到底是什么我研究了Double的源代码,但没有看到IXmlSerializable的实现。 谢谢。

1 个答案:

答案 0 :(得分:8)

import tensorflow as tf import numpy as np sess = tf.Session() batch_size = 20 input = tf.placeholder(tf.float32, shape=(batch_size, 1 , 1 ,1)) filter = tf.placeholder(tf.float32, shape=(batch_size, 1 , 2700 ,1)) out = tf.placeholder(tf.int32, shape=(4,)) logits = tf.nn.conv2d_transpose(input, filter,out,[1,1,3,1],'SAME') 使用XmlSerializerWriter来转换值。

该类的相关部分是this

XmlConvert.ToString

因此,它使用了不变的区域性,碰巧会输出符合XML RFC的字符串(因此用句点作为小数点分隔符)。

格式说明符return value.ToString("R", NumberFormatInfo.InvariantInfo); 已记录在here中:

  

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

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