double类型不能自增解决方法

double类型不能自增以下数据类型不能++或--的是()A 指针 B double C int D long此题应该选哪一个?最有问题

double类型不能自增
以下数据类型不能++或--的是( )
A 指针 B double C int D long

此题应该选哪一个?

最有问题的是double

C/C++ code
double x_double = 1.2;x_double ++;

在vs2008环境下发现自增后变成了2.20000000002,中间有一大堆0(可能没打全),后面居然多了一个2,在vc6中执行,结果正确,现在,到底应该选不选double?

[解决办法]
选double
[解决办法]
从排除性来说,当然选double
指针就是int,在32位系统上,int和long是一样的
[解决办法]
double x_double;
for (x_double=1.2; 11.99<x_double && x_double<12.01; x_double+=1.2) {
 printf("%lg\n",x_double);
}



[解决办法]
应该都可以的,LZ说的只是由于double类型所保证的精确度问题。
[解决办法]
如果我没记错,标准规定double不可以。
[解决办法]
都可以进行自增和自减的操作,虽然double数据自增后变化,但是在double的精确度内,没有任何问题
[解决办法]
答案确实为B,那个后面的2是浮点误差造成的。


[解决办法]
标准云:除了bool型,++即+1,--即-1

这里没有排除double型

按IEEE双精度浮点格式,不存在2.20000000000,而最接近 1.2 + 1.0 的就是2.20000000002

倒是 void* 这种指针是一定不能++的