C#Double 2E-15号码

时间:2015-08-20 21:43:31

标签: c#

我必须循环抛出00.000000000000001到100然而每当我这样做并尝试将其显示为字符串时它会转到2E-15之类的数字和东西,我有一种感觉这就是它的代表但是我怎么能得到实际数字。

2 个答案:

答案 0 :(得分:2)

您可以使用String.Format来确定双精度的显示方式:

double d1 = 00.000000000000001;
double d2 = 00.0001;

string text1 = String.Format("{0:000.000000000000000}", d1);
string text2 = String.Format("{0:000.###############}", d1);
string text3 = String.Format("{0:000.000000000000000}", d2);
string text4 = String.Format("{0:000.###############}", d2);
Console.WriteLine(text1+" - "+text2);
Console.WriteLine(text3+" - "+text4);

请参阅MSDN - Custom Numeric Format strings

答案 1 :(得分:0)

您可以使用十进制类型而不是double,请尝试以下代码:

using System;

class test
{
static void Main()
{
    for(decimal i = 0.000000000000001m; i < 100; i += 0.000000000000001m)
        {
            Console.WriteLine(i);
        }
}


}