我试图从秒开始转换我的字符串值(值为毫秒值)。
这是我的代码,我试图在我的xml附加内容中进行转换
xmlElement = doc.CreateNode(XmlNodeType.Element, "duration", null);
//Convert Milliseconds to Seconds
string durationMilli=DurationValue[1].TrimStart();
TimeSpan ts = TimeSpan.FromSeconds(durationMilli);//tried this didn't work
TimeSpan ts = TimeSpan.FromMilliseconds(durationMilli).TotalSeconds;//then tried this didn't work either
xmlElement.InnerText = DurationValue[1].TrimStart();
newChild.AppendChild(xmlElement);
它在扔:
“System.Timespan.FromMilliseconds(double)的最佳重载方法匹配具有无效参数”
我不确定我必须将字符串转换为实际毫秒值然后使用timespan转换为秒?请指导我。
先谢谢。
修改了一点代码,这就是我的代码中使用的代码(这是答案)
string durationMilli = DurationValue[1].TrimStart();
double milliseconds;
// Try to convert string to double
if (double.TryParse(durationMilli, out milliseconds))
{
// milliseconds now contains your value
double ds = Math.Round(TimeSpan.FromMilliseconds(milliseconds).TotalSeconds);
string totalsec = ds.ToString();
xmlElement.InnerText = totalsec;
newChild.AppendChild(xmlElement);
}
else
{
// durationMilli is not valid double - perhaps it contains letters or some special characters, report an error
}
答案 0 :(得分:2)
如错误消息所示,该方法接受类型为double
的参数。由于没有从string
到double
的隐式转换,是的,您需要将字符串表示转换为数字。
有几种方法可以完成转换。例如,您可以使用double.Parse
或double.TryParse
将string
转换为double
。
答案 1 :(得分:2)
string durationMilli=DurationValue[1].TrimStart();
尝试制作此行
double durationMilli= Convert.ToDouble(DurationValue[1].TrimStart());
答案 2 :(得分:2)
durationMilli是一个字符串。要尝试将其转换为双重使用
string durationMilli=DurationValue[1].TrimStart();
double milliseconds;
// Try to convert string to double
if (double.TryParse(durationMilli, out milliseconds))
{
// milliseconds now contains your value
TimeSpan ts = TimeSpan.FromSeconds(milliseconds);
xmlElement.InnerText = DurationValue[1].TrimStart();
newChild.AppendChild(xmlElement);
}
else
{
// durationMilli is not valid double - perhaps it contains letters or some special characters, report an error
}
答案 3 :(得分:1)
您可以使用以下任何一种方法将string
转换为double
:Convert.ToDouble()
,double.TryParse()
或double.Parse()
。