我看到一个问题,并不太明白。倍增变量
第一我们创建任意值:
int x = random();
int y = random();
int z = random();
(int是32位) 然后继续:
double dx = (double) x;
double dy = (double) y;
double dz = (double) z;
(双为64位)
问题是告诉如果下一个陈述是总是是真(返回1)或不。
a. dx+dy+dz==dz+dy+dx
b. dx*dy*dz==dz*dy*dx
答案(一)说:“是,在由双的范围内精确表示的” (是这样,它还是不总是真的吗?如果是不总是真实, (b)的答案是“否,例如dx = Tmax,dy = Tmax-1,dz = Tmax-2” (dx,dy,dz,返回0的3个值的示例)
我试过了,结果是相同的结果(但很有可能我错了: - /)
我想了解为什么那些答案是正确的
谢谢!