#7770: 誤差好奇怪@@


Horay (Horay)

學校 : 國立清華大學
編號 : 32370
來源 : [140.109.103.227]
最後登入時間 :
2016-08-01 14:19:17
a647. 投資專家 | From: [115.82.236.97] | 發表日期 : 2013-05-20 23:46

第三個測資的line 1

我輸出8.98% ... 

他說答案是8.99%...

我檢查了四捨五入,但不還是知道錯在哪?? 

 
#7771: Re:誤差好奇怪@@


kkmomo (kkmomo)

學校 : 不指定學校
編號 : 29247
來源 : [223.137.94.20]
最後登入時間 :
2024-06-28 12:05:12
a647. 投資專家 | From: [111.240.154.189] | 發表日期 : 2013-05-21 01:50

第三個測資的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

 
#7772: Re:誤差好奇怪@@


kkmomo (kkmomo)

學校 : 不指定學校
編號 : 29247
來源 : [223.137.94.20]
最後登入時間 :
2024-06-28 12:05:12
a647. 投資專家 | From: [111.240.154.189] | 發表日期 : 2013-05-21 02:33

在gcc 4.1.2 Red Hat 4.1.2-33下

上面4個printf都是8.98

 
#7773: Re:誤差好奇怪@@


kkmomo (kkmomo)

學校 : 不指定學校
編號 : 29247
來源 : [223.137.94.20]
最後登入時間 :
2024-06-28 12:05:12
a647. 投資專家 | From: [111.240.154.189] | 發表日期 : 2013-05-21 03:09

在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

 
#7893: Re:誤差好奇怪@@


cuh127 (futurhack~~~~~興國猩國也(絕對沒有在污辱女性))

學校 : 臺南市私立興國高級中學
編號 : 28132
來源 : [203.68.26.150]
最後登入時間 :
2014-04-02 16:51:03
a647. 投資專家 | From: [120.115.4.12] | 發表日期 : 2013-06-28 23:54

在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

那程式要怎麼改才能過

 
#7894: Re:誤差好奇怪@@


cuh127 (futurhack~~~~~興國猩國也(絕對沒有在污辱女性))

學校 : 臺南市私立興國高級中學
編號 : 28132
來源 : [203.68.26.150]
最後登入時間 :
2014-04-02 16:51:03
a647. 投資專家 | From: [120.115.4.12] | 發表日期 : 2013-06-28 23:54

在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

那程式要怎麼改才能過

 
#7895: Re:誤差好奇怪@@


cuh127 (futurhack~~~~~興國猩國也(絕對沒有在污辱女性))

學校 : 臺南市私立興國高級中學
編號 : 28132
來源 : [203.68.26.150]
最後登入時間 :
2014-04-02 16:51:03
a647. 投資專家 | From: [120.115.4.12] | 發表日期 : 2013-06-28 23:55

在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



 
#7896: Re:誤差好奇怪@@


cuh127 (futurhack~~~~~興國猩國也(絕對沒有在污辱女性))

學校 : 臺南市私立興國高級中學
編號 : 28132
來源 : [203.68.26.150]
最後登入時間 :
2014-04-02 16:51:03
a647. 投資專家 | From: [120.115.4.12] | 發表日期 : 2013-06-28 23:55

在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



 
#7897: Re:誤差好奇怪@@


cuh127 (futurhack~~~~~興國猩國也(絕對沒有在污辱女性))

學校 : 臺南市私立興國高級中學
編號 : 28132
來源 : [203.68.26.150]
最後登入時間 :
2014-04-02 16:51:03
a647. 投資專家 | From: [120.115.4.12] | 發表日期 : 2013-06-28 23:55

在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



 
#9831: Re:誤差好奇怪@@


abc337479871 (密碼:我DE芳齡!!學弟學妹們加油了! ↖(^ω^)↗ ...)

學校 : 澳門濠江中學
編號 : 39072
來源 : [182.93.48.18]
最後登入時間 :
2016-05-06 14:12:50
a647. 投資專家 | From: [180.94.186.17] | 發表日期 : 2015-05-05 18:53

在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

那程式要怎麼改才能過

浮點數都是這樣變來變去的 你改成用低精度除法 再用一個陣列把商記住


 
ZeroJudge Forum