0

たとえば、保存中に XmlWriter で問題が発生しました: 0.000036 値。シリアル化中に 3.6E-05 値に変換されます。どうしてか分かりません!

誰かがこの問題を解決する方法を知っていれば、私はとても助かります。以下は私のコードのサンプルです:

XDocument doc = new XDocument();

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

XElement xElement = doc.Root;

return xElement;
4

2 に答える 2

0

これらの値が等しいことに問題はありません (double は等しい可能性があるため)。これは単なる構文です3.6 * 10^-5

于 2012-07-20T09:11:44.833 に答える
0

厳密XmlWriterに型指定されたデータを文字列に適切に変換します。

試してみると

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

あなたが得る

"3.6E-05"

試したら

var doubleVal = Convert.ToDouble(stringval);

あなたが得る

0.000036また。

つまり、基本的には、値の単なる文字列表現です。

ちなみに、次のように double を宣言することもできます。

var myDouble = 3.6E-05;
于 2012-07-20T09:11:51.757 に答える