VS2008编程中遇到问题!
我刚学这个东西,今天编了个程序,老是出现如下图结果,求大虾指教。
程序如下:
namespace 循环产生抛物线
{
class Program
{
static void Main(string[] args)
{
double x;
for (x = -2; x < 2; x += 0.1)
{
Console.Write("{0}", x);
Console.Write("\n");
}
Console.ReadKey();
}
}
}
但是结果如下:
-2
-1.9
-1.8
-1.7
-1.6
-1.5
-1.4
-1.3
-1.2
-1.1
-0.999999999999999
-0.899999999999999
……中间让我省略了
……
-0.0999999999999994
6.38378239159465E-16
0.100000000000001……
……
1
1.1
1.2
……
我想问为什么会出现这种情况,中间为什么出现无限小数????
------解决方案--------------------因为double也会有误差。
如果要界面好看,可以格式化输出(其中f是浮点,1是一位小数):
Console.Write("{0:f1}", x);
------解决方案--------------------double 类型