毫秒到秒?

问题描述:

我正在试图将我的字符串值(值为毫秒值)从几秒钟。毫秒到秒?

这里是我的代码,我想我的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最好的重载方法匹配(双)具有参数无效“

我不知道我必须将字符串转换为实际的毫秒值,然后使用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

将它转换为双精度之前,它需要一个双重的功能? – Lalaland 2012-03-07 01:28:13

+0

变量durationMilli不应该是'string'类型。它应该(如你所显示的例外信息所证明的)类型为'double'。 – 2012-03-07 01:29:18

+1

这就像错误告诉你的:FromMilliseconds()期待double,但是你给它一个字符串。你必须把它变成一个双倍,然后才能像那样使用它。 http://msdn.microsoft.com/en-us/library/994c0zb1.​​aspx – 2012-03-07 01:30:04

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 
} 

作为错误消息表示,该方法接受double类型的参数。由于没有从stringdouble的隐式转换,所以您需要将字符串表示转换为数字。

有几种方法可以完成转换。例如,您可以使用double.Parsedouble.TryParsestring转换为double

string durationMilli=DurationValue[1].TrimStart(); 

试着做这行

double durationMilli= Convert.ToDouble(DurationValue[1].TrimStart()); 

您可以使用以下方法来转换stringdoubleConvert.ToDouble()double.TryParse(),或double.Parse()

+2

谢谢@Mark Landers,我会牢记它。 – Usher 2012-03-07 04:51:54