| 9 | 1/1 | 返回列表 |
| 查看: 3899 | 回復(fù): 8 | |||
liming9398金蟲 (正式寫手)
|
[求助]
fortran中到底該如何比較兩個(gè)實(shí)數(shù)是否相等
|
| 如果都是real(4)該如何比較,都是real(8) 又該如何比較?是比較絕對(duì)誤差還是相對(duì)誤差,哪個(gè)誤差都說要小于一個(gè)比較小的數(shù),到底應(yīng)該選多小呢,不同的書說法不一樣,又說-4次方的,又說-8次方的,還有的用機(jī)器精度(-8次方和-16次方,雙精度表示0.24時(shí),實(shí)際存儲(chǔ)的是0.239999994635582,這個(gè)絕對(duì)誤差本身就是-9次方量級(jí)啊,顯然不是-16方的量級(jí)??)到底哪個(gè)誤差該選多大,有沒有一個(gè)統(tǒng)一的標(biāo)準(zhǔn)或者最好的選擇? |
Ouwen's Greenhouse |
至尊木蟲 (職業(yè)作家)
| 這個(gè)要看你自己覺得多大是合適的,你要是認(rèn)為 0.2400000與0.2399999是相等的,你就設(shè)為兩者之差小于 0.000001好了……,當(dāng)然,一般也與你的變量的精度有關(guān) |
至尊木蟲 (職業(yè)作家)
木蟲 (正式寫手)
|
我來吐槽一下對(duì)于“精度”的理解應(yīng)該怎樣吧 首先,我們應(yīng)該了解IEEE754標(biāo)準(zhǔn)規(guī)定的單精度和雙精度是怎樣的 關(guān)于IEEE754標(biāo)準(zhǔn):http://en.wikipedia.org/wiki/IEEE754 關(guān)于單精度:http://en.wikipedia.org/wiki/Sin ... oating-point_format 關(guān)于雙精度:http://en.wikipedia.org/wiki/Dou ... oating-point_format 注意:尾數(shù)部分(fraction)是二進(jìn)制表示的! 單精度的尾數(shù)有23位,所以它的最小單位是2的-24次方,約等于5.96E-8;雙精度的尾數(shù)有52位,所以它的最小單位是2的-53次方,約1.11E-16,常說的“機(jī)器精度”是這個(gè)意思 領(lǐng)悟十進(jìn)制轉(zhuǎn)二進(jìn)制的局限性的話,你就知道為啥就連quadruple precision四精度都不可能精確表達(dá)0.1這么簡單一個(gè)十進(jìn)制小數(shù)了【同時(shí),就算是單精度,也能夠精確表達(dá)2^-149這個(gè)如此微小的十進(jìn)制小數(shù)(約1.4E-45)】,樓主最初問題的答案也呼之欲出了:這個(gè)要根據(jù)實(shí)際的需求來定,因?yàn)橐话愕挠?jì)算里面,大部分小數(shù)都不是被精確表示的,不能教條主義地選擇閾值的大小 |
木蟲 (正式寫手)
木蟲 (正式寫手)

木蟲 (正式寫手)
|
【答樓主問】 取一個(gè)你能接受的精度 這是個(gè)好問題。這并不是“沒有充分利用數(shù)據(jù)類型”的精度,拿單精度為例吧,它有8位二進(jìn)制指數(shù)位,和23位二進(jìn)制小數(shù)位,加上隱含的前置1的尾數(shù)開頭,相當(dāng)于一共24位二進(jìn)制有效數(shù)字?紤]一下很類似的科學(xué)計(jì)數(shù)法吧,假如我有一個(gè)十進(jìn)制小數(shù),但是它的整數(shù)部分不是零,比如: 12345.1 里面的12345的部分,勢必要占去有效數(shù)字的一些位,這樣剩下的供給0.1的有效二進(jìn)制數(shù)字就沒有24位那么多了,也就是我們不能使用2^-24約等于5.96E-8作為單精度小數(shù)的閾值了 還是以12345.1為例吧,轉(zhuǎn)成二進(jìn)制小數(shù)的話,等于 11000000111001.00011 0011 0011 0011 ...... 后面是無限循環(huán)二進(jìn)制小數(shù),去掉默認(rèn)的最高位1,剩下的尾數(shù)都會(huì)放到23位的fraction里面(嗯,exponent部分是在范圍內(nèi)的,這里就不作討論了),于是這個(gè)小數(shù)實(shí)際上會(huì)被截?cái)喑桑?br /> 11000000111001.00011 0011 0 所以等于精確的十進(jìn)制為:12345.099609375,絕對(duì)誤差為0.000390625,這個(gè)絕對(duì)誤差就要遠(yuǎn)遠(yuǎn)大于10^-8的量級(jí)了 嗯,樓主可以閱讀下我上面提到的鏈接,理解之后就好辦了 |
木蟲 (正式寫手)
| 9 | 1/1 | 返回列表 |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|
百度網(wǎng)盤 |
360云盤 |
千易網(wǎng)盤 |
華為網(wǎng)盤
在新窗口頁面中打開自己喜歡的網(wǎng)盤網(wǎng)站,將文件上傳后,然后將下載鏈接復(fù)制到帖子內(nèi)容中就可以了。 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 求調(diào)劑 +4 | QiMing7 2026-03-25 | 5/250 |
|
|---|---|---|---|---|
|
[考研] 一志愿哈爾濱工業(yè)大學(xué)材料與化工方向336分 +10 | 辰沐5211314 2026-03-26 | 10/500 |
|
|
[考研] 一志愿211,335分,0856,求調(diào)劑院校和導(dǎo)師 +5 | 傾____蕭 2026-03-27 | 6/300 |
|
|
[考研] 求調(diào)劑 +7 | 爭取九點(diǎn)睡 2026-03-28 | 8/400 |
|
|
[考研] 283求調(diào)劑 +7 | A child 2026-03-28 | 7/350 |
|
|
[考研] 材料277求調(diào)劑 +7 | min3 2026-03-24 | 7/350 |
|
|
[考研] 311求調(diào)劑 +3 | 希望上岸阿小楊 2026-03-23 | 3/150 |
|
|
[考研] 328求調(diào)劑 +7 | 嗯滴的基本都 2026-03-27 | 7/350 |
|
|
[有機(jī)交流]
高溫高壓反應(yīng)求助
10+4
|
chibby 2026-03-25 | 4/200 |
|
|
[考研] 考研調(diào)劑 +4 | Sanmu-124 2026-03-26 | 4/200 |
|
|
[考研] 266分求材料化工冶金礦業(yè)等專業(yè)的調(diào)劑 +4 | 哇呼哼呼哼 2026-03-26 | 4/200 |
|
|
[考研] 085600材料與化工調(diào)劑 +10 | A-哆啦Z夢 2026-03-23 | 16/800 |
|
|
[考研] 0856調(diào)劑 +5 | 求求讓我有書讀?/a> 2026-03-26 | 6/300 |
|
|
[考研] 求調(diào)劑323材料與化工 +7 | 1124361 2026-03-24 | 7/350 |
|
|
[考研]
材料學(xué)碩,求調(diào)劑
6+5
|
糖葫蘆888ll 2026-03-22 | 10/500 |
|
|
[考研] 351求調(diào)劑 +4 | 麥克阿磊 2026-03-24 | 4/200 |
|
|
[考研] 281求調(diào)劑 +6 | Koxui 2026-03-24 | 7/350 |
|
|
[考研] 一志愿 南京郵電大學(xué) 288分 材料考研 求調(diào)劑 +3 | jl0720 2026-03-26 | 3/150 |
|
|
[考研]
|
黃粱一夢千年 2026-03-24 | 3/150 |
|
|
[考研] 材料/農(nóng)業(yè)專業(yè),07/08開頭均可,過線就行 +3 | 呵唔哦豁 2026-03-23 | 4/200 |
|