从dataset输出到xml,0.40总会输出成0.406787,而我查数据库也好,查datatable中的数据也好,都是0.40,可一旦输出成xml,就会变成0.406787,误差太大了点吧,向大侠求解原因。

解决方案 »

  1.   

    你怎么输出的?贴代码。
     DataTable dt = new DataTable("MyData");
                dt.Columns.Add("number1", typeof(double));
                dt.Columns.Add("name", typeof(string));
                dt.Rows.Add(new object[] { 1.2, "first"});
                dt.Rows.Add(new object[] { 2, "second"});
                dt.Rows.Add(new object[] { 0.4, "third"});
                dt.WriteXml("temp.xml");
    得到的xml为:
    <?xml version="1.0" standalone="yes"?>
    <DocumentElement>
      <MyData>
        <number1>1.2</number1>
        <name>first</name>
      </MyData>
      <MyData>
        <number1>2</number1>
        <name>second</name>
      </MyData>
      <MyData>
        <number1>0.4</number1>
        <name>third</name>
      </MyData>
    </DocumentElement>
      

  2.   

    ds 是我获取到得数据集,其中采集有其中一列的数据为0.4
    XmlDataDocument xd = new XmlDataDocument(ds)
    xd.InnerXml中的结果是将0.4转换为0.406787输出了。若直接读取表,输出字符串:
    房号:写字楼-102
    欠费月份:200901
    基本费:5.00元
    滞纳金:0.40元
    合计:5.40元
    其中:
    欠费项目:居民煤气费
    基本费:5.00元
    滞纳金:0.40元若输出为Xml:
    <欠费查询>
        <欠费合计>
            <楼栋名称>写字楼</楼栋名称>
            <内部房号>102</内部房号>
            <计费月份>200901</计费月份>
            <欠收基本费>5.00</欠收基本费>
            <欠收滞纳金>0.406787</欠收滞纳金>
            <欠收合计>5.406787</欠收合计>
            <LID>6787</LID>
        </欠费合计>
            <欠费项目>
                <项目名称>居民煤气费</项目名称>
                <欠收基本费>5.00</欠收基本费>
                <欠收滞纳金>0.406787</欠收滞纳金>
                <LID>6787</LID>
         </欠费项目>
    </欠费查询>