我写的时候:
var d = 12.34D;
d.ToString();
它给出"12,34"
,但是当我使用双字段序列化对象时,它给出"12.34"
是因为XmlSerializer
使用某些特定的格式/区域性?到底是什么我研究了Double的源代码,但没有看到IXmlSerializable
的实现。
谢谢。
答案 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"
结果。