我在美国,我的同事在俄罗斯。我们每个人都使用以下模糊:
Dim num As Single = 0.123
Dim myData As XElement
myData = New XElement(myPrefix + "Data", New XAttribute(myPrefix + "Type", "Number"), New XAttribute("foo", "bar"))
myData.Value = num
但是,当我们在Quickwatch中检查myData或将内容保存到XML时,他看到 0,123 ,我看到 0.123 ,这显然是基于我们的语言环境。
有没有办法防止这种情况发生?我们的代码将此值导出到XML文件,我们在Excel中打开它,并且由于此区域设置问题,值不正确。我们每个人都创建了一个XML格式的简单Excel文件,基础数据是美国的alawys(点对逗号)格式。
由于
答案 0 :(得分:3)
这是问题所在:
newData.Value = num
XElement.Value
的类型为String
,因此您正在使用从Single
到String
的“标准”转换 - 我怀疑您是否{{1} }和Option Strict
打开,这会导致编译时失败。
为了根据正常的LINQ to XML规则设置值,您需要:
Option Explicit
或者只是添加文本值但保留子元素:
newData.ReplaceAll(num)
(目前尚不清楚newData.Add(num)
来自诚实的地方 - 您已展示newData
但未展示myData
。)