ホーム コンピュータ 浮動小数点精度の計算 作成日: 2026年7月20日 21:33 浮動小数点精度の計算 入力 形式倍精度(64 ビット)値1,000 コンピュータ 浮動小数点精度の計算 IEEE 754 の半精度、単精度、倍精度、四倍精度の各形式について、計算機イプシロン、有効十進桁数、表現可能な値の間隔(ULP)を求める。 入力 形式と値 形式 倍精度 64 ビット IEEE 754 の 2 進形式。各形式は仮数部に一定数のビットを割り当てる。 値 調べる対象の数。表現可能な値の間隔は、この大きさにおいて計算される。 結果 値を入力すると計算結果が表示されます。 精度 計算機イプシロン 1 と、その次に大きい表現可能な数との差。倍精度(64 ビット) 形式の相対分解能を表す。 この値における ULP 最終桁の単位。1,000 と、その 1 つ上の表現可能な数との距離。 詳細 仮数部ビット数 仮数部の精度を表すビット数。暗黙の先頭ビットを含む。 十進桁数 この形式が信頼して表現できる有効十進桁数のおおよその数。 最大丸め誤差 1,000 付近の実数を、最も近い表現可能な値に丸めたときの最大絶対誤差。 共有 レポートを印刷 リセット 埋め込み この計算機を埋め込む プレビュー このコードをページに貼り付けると計算機を表示できます。 コードをコピー この計算を共有 このリンクを開くと、入力した値がそのまま表示されます。 リンクをコピー 共有する XFacebookLINE メール 最終更新: 2026-06-29 浮動小数点精度 コンピュータは実数を有限のビット数で格納するため、ほとんどの値は近似的にしか保持されない。本計算は、IEEE 754 の 2 進形式(半精度、単精度、倍精度、四倍精度)の精度を、計算機イプシロン、信頼できる十進桁数、そして選んだ値における表現可能な数の間隔(ULP)として求める。これらを合わせて見ると、浮動小数点演算が精密ではあっても正確ではない理由が分かる。 浮動小数点数が数を格納するしくみ IEEE 754 の数は、符号、仮数(有効な桁)、そしてそれを 2 の累乗で拡大する指数として書かれる。2 進法での科学的記数法によく似ている。各形式は仮数部に与えるビット数を固定する。半精度は仮数部が 11 ビット、単精度は 24 ビット、倍精度は 53 ビット、四倍精度は 113 ビットである(各数は暗黙の先頭ビット 1 つを含む)。仮数部のビット数が多いほど分解能が細かくなる。 計算機イプシロン 分解能の最も明快な尺度は計算機イプシロン、すなわち 1.0 と、その 1 つ上の表現可能な数との差である。 ε=2−(p−1)\varepsilon = 2^{-(p-1)} ここで pp は仮数部のビット数である。倍精度では ε=2−52≈2.22×10−16\varepsilon = 2^{-52} \approx 2.22 \times 10^{-16} となる。これは相対的な限界である。任意の実数は、高々 ε/2\varepsilon / 2 の相対誤差で格納される。信頼できる有効十進桁数はそこから直接導かれ、(p−1)log102(p-1)\log_{10} 2、倍精度では約 15.7 桁となる。 ULP: 大きさとともに増える間隔 計算機イプシロンは 1.0 付近の間隔を表すが、浮動小数点数は等間隔ではない。連続する表現可能な値の間隔、すなわち最終桁の単位(ULP)は、大きさとともにスケールする。 ULP(x)=2⌊log2∣x∣⌋−(p−1)\text{ULP}(x) = 2^{\lfloor \log_2 |x| \rfloor - (p-1)} 1 付近では間隔は計算機イプシロンであり、1,000 付近では約 1,000 倍になる。これが、浮動小数点が一定の相対精度を保ちながら、数が大きくなるにつれて絶対精度を失う理由である。 計算例 倍精度と値 1000 をとる。指数は ⌊log21000⌋=9\lfloor \log_2 1000 \rfloor = 9 であるから、次のようになる。 ULP(1000)=2 9−52=2−43≈1.14×10−13\begin{aligned} \text{ULP}(1000) &= 2^{\,9 - 52} = 2^{-43} \\ &\approx 1.14 \times 10^{-13} \end{aligned}ULP(1000)=29−52=2−43≈1.14×10−13 1000 付近の最大丸め誤差はその半分、約 5.7×10−145.7 \times 10^{-14} である。すなわち倍精度は 1000 と 1000.0000000000001 を区別できるが、16 桁目で異なる値は区別できない。 0.1 が正確でない理由 2 進浮動小数点は 2 の累乗の和しか表現できず、0.1 は有限の 2 進展開を持たない。ちょうど 3 分の 1 が十進では有限展開を持たないのと同じである。そのため最も近い表現可能な値に丸められる。これが、ほとんどの言語で 0.1 + 0.2 が 0.3 と厳密には等しくならない理由である。この差は計算機イプシロンの程度で通常は無害だが、長い計算にわたって蓄積する。金額が浮動小数点ではなく整数または十進型でしばしば格納されるのはこのためである。整数自体が 2 進でどのように符号化されるかについては、2の補数変換 を参照されたい。 よくある質問 (FAQ)計算機イプシロンとは計算機イプシロンは、1.0 と、それより大きい次の浮動小数点数との差である。これは 2 を、仮数部の小数ビット数の符号を反転した数だけ累乗した値に等しい。倍精度ではこれは 2⁻⁵²、約 2.22 × 10⁻¹⁶ である。 計算機イプシロンは形式の相対分解能を表す。任意の実数は、イプシロンの半分を超えない相対誤差で格納される。これは、その形式が信頼して保持できる桁数を測る標準的な尺度である。 ULP とはULP は「最終桁の単位」(unit in the last place)を表し、ある浮動小数点数と、その 1 つ上の表現可能な数との距離である。 計算機イプシロンが一定であるのに対し、ULP は大きさとともに増大する。1 付近では間隔は計算機イプシロンであり、1,000 付近では約 1,000 倍、10 億付近ではさらに大きくなる。間隔が値に比例してスケールするため、浮動小数点数はその範囲全体でほぼ一定の相対精度を保つ一方、絶対精度は数が大きくなるにつれて低下する。 0.1 を正確に格納できないのはなぜか2 進浮動小数点は 2 の累乗の和しか表現できない。十進の小数 0.1 は有限の 2 進展開を持たない。ちょうど 3 分の 1 が有限の十進展開を持たないのと同じである。そのため最も近い表現可能な値に丸められ、その値は 0.1 よりわずかに大きい。 これが、ほとんどの言語で 0.1 + 0.2 が 0.3 と厳密には等しくならない理由である。誤差は計算機イプシロンの程度でごく小さいが、多数の演算にわたって蓄積する。金額が整数または十進型でしばしば格納されるのはこのためである。 各形式は十進で何桁を保持するか信頼できる有効十進桁数は、おおよそ仮数部の小数ビット数に 2 の対数(約 0.301)を掛けた値である。半精度はおよそ 3 桁、単精度は約 7 桁、倍精度は約 15〜16 桁、四倍精度は約 34 桁となる。これらは安全に往復変換できる桁数である。これを超えて桁を表示すると、意味のある精度ではなく、2 進表現の丸めの痕跡が現れる。 次のおすすめ 2の補数変換 符号付き整数を2の補数表現の2進数・16進数に変換、または2進数文字列から符号付き10進数に復元します。8・16・32・64ビット幅に対応。 詳しく解説Base64エンコードのオーバーヘッド バイナリデータのサイズを入力して、Base64エンコード後の出力サイズとオーバーヘッドを求めます。 詳しく解説ビッグO記法の増加率 入力サイズ n を入力して、代表的な時間計算量クラス(O(log n) から O(n!) まで)が必要とする演算数を比較します。 詳しく解説 200+ ツール · 10 言語対応 · 完全無料 データ・エンコードの他の計算 2の補数変換Base64エンコードのオーバーヘッドCRCチェックサムGit リポジトリのクローンサイズ推定IEEE 754 浮動小数点ビット表現浮動小数点精度の計算 +18 more Show less QRコードの収容文字数Unixタイムスタンプ変換(エポック ⇄ 日時)UTF-8バイト数計算ツールオーディオファイルサイズ計算カラーコードの変換スループット (bps) 換算データ転送時間の計算テキスト → 2進数 / 16進数 / ASCII 変換ナイキストサンプリングレート計算ツールブルームフィルタ サイズ計算メガピクセル・印刷サイズ計算メモリアドレスビット計算圧縮率の計算画素密度(PPI・DPI)の計算画像ファイルサイズの計算色深度・ビット/ピクセルの計算動画ビットレートとファイルサイズ配信帯域幅の計算 コンピュータの他のカテゴリ ネットワーク 1秒あたりパケット数(pps)の計算CIDRとサブネットマスクの変換IPv4 アドレス表現の変換IPv6サブネットの計算IPアドレス範囲の計算IPスーパーネットの計算MTU から MSS の計算TCP スループットの計算サブネットの計算レイテンシバジェットの計算帯域幅遅延積(BDP)の計算セキュリティ・暗号 chmodパーミッションの計算UUID 衝突確率の計算パスワードのエントロピーハッシュ衝突確率の計算アルゴリズム Luhn チェックディジットの計算シャノンエントロピーの計算ハミング距離の計算ビッグO記法の増加率レーベンシュタイン距離の計算信頼性・ストレージ APIレート制限の計算cron式デコーダー・次回実行時刻の計算MTBF・MTTR・稼働率 計算ツールRAID容量の計算クラウドストレージ料金の計算ハミング符号 ECCビット数計算ツール稼働率SLAの計算複合可用性の計算性能・待ち行列 Apdex スコアの計算CPU実行時間 計算ツールIOPS とスループットの変換M/M/1 待ち行列の計算M/M/c 待ち行列計算ツールアーランC 要員数計算アムダールの法則の計算キャッシュヒット率と実効アクセス時間(AMAT)の計算グスタフソンの法則の計算バッテリー駆動時間の計算ツールリトルの法則の計算平均メモリアクセス時間(AMAT)の計算 この計算機は役に立ちましたか? 役に立った 改善が必要 改善が必要 どのような点が改善されると良いですか? フィードバックを送信 Powered by OneCalc ↗
最終更新: 2026-06-29 浮動小数点精度 コンピュータは実数を有限のビット数で格納するため、ほとんどの値は近似的にしか保持されない。本計算は、IEEE 754 の 2 進形式(半精度、単精度、倍精度、四倍精度)の精度を、計算機イプシロン、信頼できる十進桁数、そして選んだ値における表現可能な数の間隔(ULP)として求める。これらを合わせて見ると、浮動小数点演算が精密ではあっても正確ではない理由が分かる。 浮動小数点数が数を格納するしくみ IEEE 754 の数は、符号、仮数(有効な桁)、そしてそれを 2 の累乗で拡大する指数として書かれる。2 進法での科学的記数法によく似ている。各形式は仮数部に与えるビット数を固定する。半精度は仮数部が 11 ビット、単精度は 24 ビット、倍精度は 53 ビット、四倍精度は 113 ビットである(各数は暗黙の先頭ビット 1 つを含む)。仮数部のビット数が多いほど分解能が細かくなる。 計算機イプシロン 分解能の最も明快な尺度は計算機イプシロン、すなわち 1.0 と、その 1 つ上の表現可能な数との差である。 ε=2−(p−1)\varepsilon = 2^{-(p-1)} ここで pp は仮数部のビット数である。倍精度では ε=2−52≈2.22×10−16\varepsilon = 2^{-52} \approx 2.22 \times 10^{-16} となる。これは相対的な限界である。任意の実数は、高々 ε/2\varepsilon / 2 の相対誤差で格納される。信頼できる有効十進桁数はそこから直接導かれ、(p−1)log102(p-1)\log_{10} 2、倍精度では約 15.7 桁となる。 ULP: 大きさとともに増える間隔 計算機イプシロンは 1.0 付近の間隔を表すが、浮動小数点数は等間隔ではない。連続する表現可能な値の間隔、すなわち最終桁の単位(ULP)は、大きさとともにスケールする。 ULP(x)=2⌊log2∣x∣⌋−(p−1)\text{ULP}(x) = 2^{\lfloor \log_2 |x| \rfloor - (p-1)} 1 付近では間隔は計算機イプシロンであり、1,000 付近では約 1,000 倍になる。これが、浮動小数点が一定の相対精度を保ちながら、数が大きくなるにつれて絶対精度を失う理由である。 計算例 倍精度と値 1000 をとる。指数は ⌊log21000⌋=9\lfloor \log_2 1000 \rfloor = 9 であるから、次のようになる。 ULP(1000)=2 9−52=2−43≈1.14×10−13\begin{aligned} \text{ULP}(1000) &= 2^{\,9 - 52} = 2^{-43} \\ &\approx 1.14 \times 10^{-13} \end{aligned}ULP(1000)=29−52=2−43≈1.14×10−13 1000 付近の最大丸め誤差はその半分、約 5.7×10−145.7 \times 10^{-14} である。すなわち倍精度は 1000 と 1000.0000000000001 を区別できるが、16 桁目で異なる値は区別できない。 0.1 が正確でない理由 2 進浮動小数点は 2 の累乗の和しか表現できず、0.1 は有限の 2 進展開を持たない。ちょうど 3 分の 1 が十進では有限展開を持たないのと同じである。そのため最も近い表現可能な値に丸められる。これが、ほとんどの言語で 0.1 + 0.2 が 0.3 と厳密には等しくならない理由である。この差は計算機イプシロンの程度で通常は無害だが、長い計算にわたって蓄積する。金額が浮動小数点ではなく整数または十進型でしばしば格納されるのはこのためである。整数自体が 2 進でどのように符号化されるかについては、2の補数変換 を参照されたい。 よくある質問 (FAQ)計算機イプシロンとは計算機イプシロンは、1.0 と、それより大きい次の浮動小数点数との差である。これは 2 を、仮数部の小数ビット数の符号を反転した数だけ累乗した値に等しい。倍精度ではこれは 2⁻⁵²、約 2.22 × 10⁻¹⁶ である。 計算機イプシロンは形式の相対分解能を表す。任意の実数は、イプシロンの半分を超えない相対誤差で格納される。これは、その形式が信頼して保持できる桁数を測る標準的な尺度である。 ULP とはULP は「最終桁の単位」(unit in the last place)を表し、ある浮動小数点数と、その 1 つ上の表現可能な数との距離である。 計算機イプシロンが一定であるのに対し、ULP は大きさとともに増大する。1 付近では間隔は計算機イプシロンであり、1,000 付近では約 1,000 倍、10 億付近ではさらに大きくなる。間隔が値に比例してスケールするため、浮動小数点数はその範囲全体でほぼ一定の相対精度を保つ一方、絶対精度は数が大きくなるにつれて低下する。 0.1 を正確に格納できないのはなぜか2 進浮動小数点は 2 の累乗の和しか表現できない。十進の小数 0.1 は有限の 2 進展開を持たない。ちょうど 3 分の 1 が有限の十進展開を持たないのと同じである。そのため最も近い表現可能な値に丸められ、その値は 0.1 よりわずかに大きい。 これが、ほとんどの言語で 0.1 + 0.2 が 0.3 と厳密には等しくならない理由である。誤差は計算機イプシロンの程度でごく小さいが、多数の演算にわたって蓄積する。金額が整数または十進型でしばしば格納されるのはこのためである。 各形式は十進で何桁を保持するか信頼できる有効十進桁数は、おおよそ仮数部の小数ビット数に 2 の対数(約 0.301)を掛けた値である。半精度はおよそ 3 桁、単精度は約 7 桁、倍精度は約 15〜16 桁、四倍精度は約 34 桁となる。これらは安全に往復変換できる桁数である。これを超えて桁を表示すると、意味のある精度ではなく、2 進表現の丸めの痕跡が現れる。