私は見て、かなり理解していない質問。倍精度変数の乗算
まず、我々は任意の値を作成:その後、
int x = random();
int y = random();
int z = random();
(intは32ビットである) を続行:
double dx = (double) x;
double dy = (double) y;
double dz = (double) z;
(ダブルが64ビットである)
質問が言うことでしたが次の文がの場合は常に true(1を返します)。
a. dx+dy+dz==dz+dy+dx
b. dx*dy*dz==dz*dy*dx
への回答(a)に「はい、二重の正確な表現の範囲内で」 (そう、それであるか、それは常に真実ではないのですか?とし、それは常に真ない場合には、
(b)に対する答えは「いいえ、たとえばdx = Tmax、dy = Tmax-1、dz = Tmax-2」 の3つの値の例を参考にしたいと思います。私は試してみて、それは同じ結果であることが判明した(しかし、私は間違っていた可能性が高い - /)
私はそれらの答えが正しい理由を理解したいです
ありがとう!