2012-03-07 4 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에 가장 적합한 오버로드 된 메서드에 일치 (더블) 유효하지 않은 인수가 "

실제 밀리 초 값으로 문자열을 변환 한 다음 초로 변환 할 시간 간격을 사용해야합니까? 제발 나를 안내 해줘.

미리 감사드립니다.

코드 약간 수정 및 오류 메시지가 알 수 있듯이 내 코드에서 사용하고 어떤이 (이 답변입니다)

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로 변환 하시겠습니까? – Lalaland

+0

변수 durationMilli는'string' 유형이 아니어야합니다. 그것은 (당신이 보여준 예외 메시지에 의해 입증 된 것처럼)'double' 타입이어야합니다. –

+1

FromMilliseconds()는 double을 기대하지만 오류는 문자열을주는 것입니다. 그런 식으로 사용하기 전에 그것을 이중으로 바꾸어야합니다. http://msdn.microsoft.com/en-us/library/994c0zb1.aspx –

답변

1

durationMilli을

3

, 방법은 유형 double의 인수를 받아들입니다. string에서 double으로 암시 적 변환이 없으므로 문자열 표현을 숫자로 변환해야합니다.

변환을 수행하는 방법에는 여러 가지가 있습니다. 예를 들어 double.Parse 또는 double.TryParse을 사용하여 stringdouble으로 변환 할 수 있습니다. 이 라인

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

시도는 문자열입니다. 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 
} 
1

로 변환하려고 당신은 stringdouble로 변환하려면 다음 방법 중 하나를 사용할 수 있습니다.

+2

감사합니다. @ Mark Landers, 나는 그것을 명심 할 것입니다. – Usher

관련 문제