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 回答