我必须循环抛出00.000000000000001到100然而每当我这样做并尝试将其显示为字符串时它会转到2E-15之类的数字和东西,我有一种感觉这就是它的代表但是我怎么能得到实际数字。
答案 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);
答案 1 :(得分:0)
您可以使用十进制类型而不是double,请尝试以下代码:
using System;
class test
{
static void Main()
{
for(decimal i = 0.000000000000001m; i < 100; i += 0.000000000000001m)
{
Console.WriteLine(i);
}
}
}