decimal and double ToString problem

Posted chucklu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了decimal and double ToString problem相关的知识,希望对你有一定的参考价值。

 

 

decimal d2 = 0.0000002500m;
Console.WriteLine(d2.ToString());


double d3 = 0.0000002500;
Console.WriteLine(d3.ToString());

 

输出结果是,

0.0000002500
2.5E-07

double在ToString的时候,直接进行了科学计数法。

 

 DataTable dataTable = new DataTable();
            DataColumn dataColumn = new DataColumn();
            dataColumn.ColumnName = "column1";
            dataColumn.DataType = typeof(decimal);
            dataTable.Columns.Add(dataColumn);

            DataColumn dataColumn2 = new DataColumn();
            dataColumn2.ColumnName = "column2";
            dataColumn2.DataType = typeof(decimal);
            dataTable.Columns.Add(dataColumn2);
            decimal d2 = 0.0000002500m;
            string value2 = d2.ToString();
            Console.WriteLine(value2);


            double d3 = 0.0000002500;
            string value3 = d3.ToString();
            Console.WriteLine(d3.ToString());

            var dataRow = dataTable.NewRow();
            try
            {
                dataRow["column1"] = value2;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            dataRow["column2"] = value3;
            Console.WriteLine(dataRow["column1"]);
            Console.WriteLine(dataRow["column2"]);

 

需要把这个代码中的decimal修正为double。或者把数据源,修正为decimal

dataColumn2.DataType = typeof(decimal);

 

以上是关于decimal and double ToString problem的主要内容,如果未能解决你的问题,请参考以下文章

decimal,float和double的区别是啥?

Decimal.Parse 和 Double.Parse System.FormatException 不同的行为

float,double和decimal类型

C# float 、double和decimal的解释

应该将 xs:double 转换为 xs:decimal 实现为 BigDecimal.valueOf(double) 还是 new BigDecimal(double)?

Newtonsoft JSON- 与 DataSet 的转换导致 Decimal 变为 Double?