1
我試圖在小數點後打印更多數字。所以用了「mpfr」功能。但是,爲什麼我會得到這個結果呢?來自Rmpfr包的mpfr函數
> mpfr(1/5, 120)
1 'mpfr' number of precision 120 bits
[1] 0.20000000000000001110223024625156540424
爲什麼打印「1110223024625156540424」後的結果爲0?
我試圖在小數點後打印更多數字。所以用了「mpfr」功能。但是,爲什麼我會得到這個結果呢?來自Rmpfr包的mpfr函數
> mpfr(1/5, 120)
1 'mpfr' number of precision 120 bits
[1] 0.20000000000000001110223024625156540424
爲什麼打印「1110223024625156540424」後的結果爲0?
因爲你給了它一個不是你認爲的數字。該部門首先作爲雙精度操作完成。
1/Rmpfr::mpfr(5, 80)
1 'mpfr' number of precision 80 bits
[1] 2.0000000000000000000000004e-1
> 1/Rmpfr::mpfr(5, 120)
1 'mpfr' number of precision 120 bits
[1] 2.0000000000000000000000000000000000004e-1
我的另一種方法由5更高的精度版本,然後將其通過的/
的MPFR版本(除法函數)來處理。
看你得到了什麼:
methods(`/`)
謝謝。你知道爲什麼最後打印4嗎? – Mac
不,我不知道。也許馬丁Maechler會徘徊。 ISTR是他的包裹。 –