2012-03-07 249 views
-2

我正在試圖將我的字符串值(值爲毫秒值)從幾秒鐘。毫秒到秒?

這裏是我的代碼,我想我的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

回答

1

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

作爲錯誤消息表示,該方法接受double類型的參數。由於沒有從stringdouble的隱式轉換,所以您需要將字符串表示轉換爲數字。

有幾種方法可以完成轉換。例如,您可以使用double.Parsedouble.TryParsestring轉換爲double

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

試着做這行

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

您可以使用以下方法來轉換stringdoubleConvert.ToDouble()double.TryParse(),或double.Parse()

+2

謝謝@Mark Landers,我會牢記它。 – Usher 2012-03-07 04:51:54