- ベストアンサー
rubyのエラー out of float range の原因
rubyでout of float range と算出されました。 これは計算の桁が大きすぎるためなのでしょうか。 ルビーは計算の桁がメモリーの許す限り無限と聞いたのですが。 どういう意味なのか教えていただきたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>これは計算の桁が大きすぎるためなのでしょうか。 そんなところです。 例えば、 a=1E1000 # 10の1000乗 とすると、 warning: Float 1e1000 out of range という警告が出て、a の値は Infinity (無限大) になります。 >ルビーは計算の桁がメモリーの許す限り無限と聞いたのですが。 違います。きっと、聞き間違い、読み間違いですね。 整数の計算はメモリーの許す限り無限桁です。 通常の浮動小数点数の値は普通の他の言語と同じ。 BigDecimalライブラリを使うと、任意の桁数で浮動小数点数計算できます。
その他の回答 (1)
- kmee
- ベストアンサー率55% (1857/3366)
回答No.2
http://oshiete1.goo.ne.jp/qa5646276.html >rubyの整数 です。Floatは無限ではないです。 コンビネーションの計算ということだったので、整数演算のみが必要なので、紹介いたしました。 なにやら、確率計算をしているようですが nCm * (p^m) * ((p-1)^(n-m)) みたいな計算を、この式通りに計算しようとしてませんか? コンピュータで計算するときは、公式のまま計算するのではなく、式を変形して、コンピュータが計算しやすいようにすることも大切です。