2012-03-07 21 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ための最良のオーバーロードメソッドの試合(ダブル)は、無効な引数を持っています"

実際のミリ秒値に文字列を変換してから、秒に変換するタイムパンを使用する必要がありますか?私を案内してください。

ありがとうございました。

は、エラーメッセージが示すように、この方法は、タイプdoubleの引数を受け入れ

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

doubleを必要とする関数を渡す前にdoubleに変換しますか? – Lalaland

+0

変数durationMilliの型は 'string'であってはなりません。これは、(あなたが示した例外メッセージで示されているように) 'double'型のものでなければなりません。 –

+1

FromMilliseconds()はdoubleを期待していますが、文字列を指定しています。あなたはそのように使うことができる前に、それをダブルにしなければなりません。 http://msdn.microsoft.com/en-us/library/994c0zb1.​​aspx –

答えて

1

このラインを作ってみてください。 Convert.ToDouble()double.TryParse()、またはdouble.Parse():ダブル使用

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

(これが答えです)、コードを少し修正して、この私のコードで使用しています何。 stringからdoubleへの暗黙的な変換がないため、文字列表現を数値に変換する必要があります。

変換を行うにはいくつかの方法があります。たとえば、double.Parseまたはdouble.TryParseを使用してstringdoubleに変換できます。

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

durationMilliが文字列である

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

に変換しようとするあなたはstringdoubleに変換するには、次の方法のいずれかを使用することができます。

+2

ありがとう@マークランドランダー、私はそれを念頭に置くでしょう。 – Usher