2017-06-20 5 views
1

10進数の後にさらに数字を印刷しようとしていました。そのため、 "mpfr"関数を使用しました。しかし、なぜ私はこの結果を得ていますか?Rmpfrパッケージのmpfr関数

> mpfr(1/5, 120) 
1 'mpfr' number of precision 120 bits 
[1] 0.20000000000000001110223024625156540424 

0の後に結果が「1110223024625156540424」になるのはなぜですか?

答えて

1

あなたはそれがあなたが思っていたものではない番号を与えたので、この分割は、倍精度演算として最初に行われました。

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 

私の別の方法は、次に/のMPFRバージョン(分割機能)によって処理された5の高精度のバージョンを作りました。

は、あなたが何を得るを参照してください:

methods(`/`) 
+0

ありがとうございました。最後に4が印刷されている理由は分かりますか? – Mac

+0

いいえ、私はしません。多分Martin Maechlerはさまようだろう。 ISTRは彼のパッケージです。 –

関連する問題