HN 日本語サマリー

← 一覧へ戻る
プログラミング

浮動小数点数の代替手段について

More Floating Point Alternatives (wizardzines.com)

35 pointsby vismit200023 コメント

要約

この記事では、コンピュータサイエンスにおける浮動小数点数の表現方法の代替手段を5つ紹介しています。これらはソフトウェア実装のためハードウェア実装より遅いですが、十進浮動小数点数、分数、記号計算、区間演算、BCD(Binary-Coded Decimal)といった方法があります。それぞれの特徴と、PythonやMathematicaなどの具体的な例が挙げられています。

全文翻訳

浮動小数点数の代替手段

[画像: 笑顔の棒人間]

[画像: コミックの画像。完全なHTMLのaltテキストを読むには、「トランスクリプトを読む」をクリックしてください。]

トランスクリプトを読む!

数値を表現する多くの代替方法があります

これらはすべてソフトウェア(ハードウェアではない)で実装されているため、はるかに遅く、言語によってライブラリが異なります。

代替手段1:10進数浮動小数点数

これは通常の浮動小数点数に似ていますが、基数が2ではなく10です。IEEE 754でも標準化されています。

例:PythonのdecimalモジュールやJavaのBigDecimal

代替手段2:分数

これにより、分数を使った正確な計算ができます(1/10 + 2/10 = 3/10)。

例:標準ライブラリのPythonのfractionsモジュール、Lispにはファーストクラスのサポートがあります。

代替手段3:記号計算

例えば、1.414の代わりにsqrt(2)。

Mathematica、Maple、sympyのようなコンピュータ代数システムで見られます。

代替手段4:区間演算

このアイデアは、誤差範囲を正確に追跡できるように、すべての数値を範囲として格納することです。

おそらく、これらの代替手段の中で最も主流ではないものです。

代替手段5:2進化10進数(BCD)

これは、1960年代のIBMコンピュータで浮動小数点数(および整数)がどのように格納されていたかであり、金融取引のためのISO 8583のような古い形式で今でも時折見かけることがあります。