2012-07-20 5 views
0

예를 들어 저장 중에 XmlWriter에 문제가 발생했습니다. 0.000036 값. 직렬화하는 동안 3.6E-05 값으로 변환됩니다. 나는 이유를 모른다!XmlWriter 변환 값을 사용하지 않음

누군가가이 문제를 해결하는 방법을 알고 있다면 나는 위대 할 것이다. (double로 동일 할 수있다) 문제는 그와 함께 없다

XDocument doc = new XDocument(); 

using (XmlWriter writer = doc.CreateWriter()) { 
    xs.Serialize(writer,o); 
} 

XElement xElement = doc.Root; 

return xElement; 

답변

0

글쎄 XmlWriter은 강력한 형식의 데이터를 문자열로 변환합니다. 당신이

var val = 0.000036; 
var stringval = val.ToString(); 

를하려고하면 당신은 당신이 다시

0.000036을 얻을 것이다 다음

var doubleVal = Convert.ToDouble(stringval); 

하려고하면

당신은

"3.6E-05" 

을 얻을 것이다.

그래서 기본적으로 값의 문자열 표현입니다. 그런데

, 당신은 또한

MSDN에서
var myDouble = 3.6E-05; 
+0

으로 더블을 선언 할 수 _The XmlWriter를가 XML 스키마에 따라 자사의 문자열 표현으로 값을 변환 (XSD) 데이터 형식 rules_ [XML 스키마] (http://www.w3.org/TR/xmlschema11-2/#double) – user1519979

+0

내가 예상하는 답변입니다. 고마워요. :) – Jaro

+0

하지만 이전에 다른 질문이 있습니다. 나는 상황을 묘사한다. 텍스트 상자의 값을 0.000036과 같이 serialize합니다. Xml 객체에 3,6E-05로 저장됩니다. 다음으로이 값 (3,6E-05)을 검색하고 텍스트 상자 (Text) 속성 (문자열)에 할당하려고합니다. 하지만 내부 텍스트 상자 값 0.000036 아니라 3,6E-05 찾으려면. 어떻게해야합니까? – Jaro

0

그 값이 동일 : 아래 내 코드의 샘플입니다. 이것은 3.6 * 10^-5의 구문입니다.