【发布时间】:2016-06-07 07:18:27
【问题描述】:
我正在尝试读取 XElement 并将其转换为小数。 Sumkwh 为十进制,输入为:
<detaillinie>
<periode>2016-04-27 06:30:00</periode>
<kWh>0,35225</kWh>
</detaillinie>
<detaillinie>
<periode>2016-04-27 06:45:00</periode>
<kWh>0,35225</kWh>
</detaillinie>
<detaillinie>
<periode>2016-04-27 07:00:00</periode>
<kWh>0,17875</kWh>
</detaillinie>
代码如下所示:
var query =
from timeserie in xdoc.Descendants("detaillinie").AsEnumerable()
select new TimeSerie
{
Sumdato = (DateTime)timeserie.Element("periode"),
Sumkwh = (decimal)timeserie.Element("kWh")
}
在 mscorlib.dll 中出现“System.FormatException”类型的异常,但未在用户代码中处理
附加信息:输入字符串格式错误。
如果我手动输入
Sumkwh = decimal.parse("0,2435")我没有错误。
我试过了
Sumkwh = decimal.parse(timeserie.Element("kWh"))
它给出了错误“无法从'system.xml.linq.xelement'转换为字符串。
请帮忙:)
【问题讨论】:
-
你的代码不完整。
-
试试
Sumkwh = decimal.Parse(timeserie.Element("kWh").ToString()) -
您的输入使用
,作为小数分隔符,而 XML 应该写入/读取不变的文化格式值。 -
说真的,学习如何使用 Visual Studio 调试器。无意冒犯。