第三個測資的line 1
我輸出8.98% ...
他說答案是8.99%...
我檢查了四捨五入,但不還是知道錯在哪??
20000 21797
無誤差8.985,四捨五入為8.99沒錯
我用vs2012 在win7 64bit下測
double x=8.985;
printf("%.2f\n",x);
8.98
printf("%.2f\n",((int)(100*x+0.5))/100.);
8.99
printf("%.2lf\n",x);
8.98
printf("%.2lf\n",((int)(100*x+0.5))/100.);
8.99
1、編譯器實作上的造成的差異
2、計算過程
可以看看這篇
http://bbs.csdn.net/topics/300085469
在gcc 4.1.2 Red Hat 4.1.2-33下
上面4個printf都是8.98
gcc 4.7.2 (Debian 4.7.2-5)
也是
8.98
8.99
8.98
8.99