【发布时间】:2012-09-27 12:46:26
【问题描述】:
我尝试将三个数字相乘,但得到一个奇怪的结果。为什么我得到如此不同的结果?
unsigned int a = 7;
unsigned int b = 8;
double d1 = -2 * a * b;
double d2 = -2 * (double) a * (double) b;
double d3 = -2 * ( a * b );
// outputs:
// d1 = 4294967184.000000
// d2 = -112.000000
// d3 = 4294967184.000000
【问题讨论】: