【发布时间】:2013-01-24 21:16:06
【问题描述】:
我正在使用 Visual Studio 2010。我的代码有一个奇怪的行为
使用此代码,我可以解析 xml 文件。
XDocument document = XDocument.Load("http://www.studiovincent.net/list.xml");
XElement resourcesElement = document.Root.Element("resources");
XElement resourceElementVincent = (from resourceElement in resourcesElement.Elements("resource")
where resourceElement.Elements("field").Single(fieldElement => fieldElement.Attribute("name").Value == "name").Value == "Vincent"
select resourceElement).Single();
decimal tasso = Math.Round(decimal.Parse(resourceElementVincent.Elements("field").Single(fieldElement => fieldElement.Attribute("name").Value == "age").Value) / Convert.ToInt64(1.00E+006), 6);
string gigi = Math.Round(41 * tasso, 4).ToString();
Console.WriteLine("{0}", gigi);
Console.ReadLine();
一切正常,直到我更改区域选项。如果我选择意大利语:
这是输出:0,0013
如果我在区域选项中选择美国,则输出:0.0000
我不知道如何解决这个问题。
提前致谢。
【问题讨论】:
-
您是否有意将其缩短为四个零?即
0000?可能是某处存在舍入问题,但由于允许输出的长度而将其切断。看看你是否可以增加输出的长度,你可能会发现以前没有显示的“隐藏”值。如果是这种情况,请更改为相应区域解析输出的方式。
标签: c# globalization decimal-point regional-settings