浮動小数点インスペクター

float16、bfloat16、float32、float64 の IEEE 754 保存形式を確認し、符号、指数、仮数、丸め誤差、隣接する表現可能値を見比べられます。

知りたいのが「何進法で表せるか」ではなく「どのビット列で保存されるか」ならこのページを使います。整数の進数変換だけなら 進数変換・ビット演算ツール が向いています。

他の言語 日本語 English

このツールで分かること

Wave 7 ja dev-data

浮動小数点の保存値を確認する

10 進、16 進、2 進の入力に対応します。共有 URL は設定だけを保存し、入力値は含めません。

入力

10 進入力では、選んだフォーマットで生じる丸め誤差を確認できます。

解析結果

元の入力

ビット構造

指数ビット
指数 raw 値
仮数ビット

ひとつ下の表現可能値

その方向には隣接する表現可能値がありません。

ひとつ上の表現可能値

その方向には隣接する表現可能値がありません。

単なる進数変換ではなく、保存のされ方を見るページです

進数変換は同じ整数を別の表記に書き換えるだけです。浮動小数点では、10 進値をそのまま保存できるとは限らず、符号・指数・仮数の制約に合わせて近い値へ丸められます。だからこのページでは保存値と丸め誤差の両方を見ます。

なぜ 0.1 が変わるのか

0.1 は有限の 2 進展開を持たないため、どの 2 進浮動小数点フォーマットでも最も近い値へ丸められます。仮数ビットが多いほど誤差は小さくなりますが、完全に一致するわけではありません。

float16 と bfloat16

float16 は仮数ビットが多く、1 付近の精度に強い形式です。bfloat16 は float32 と同じ指数幅を持つため、より広いレンジを保ちながら、仮数は少なくなります。ML 文脈で bfloat16 が使われる理由はこの違いにあります。

特殊値

指数ビットがすべて 1 のとき、仮数が 0 なら無限大、0 でなければ NaN です。指数ビットがすべて 0 で仮数だけが残ると非正規化数になります。符号付きゼロもあり、-0+0 は別ビット列を持ちます。

よくある質問

進数変換ツールとは何が違いますか?

進数変換は同じ整数を別の表記に書き換えるものです。浮動小数点インスペクターは、10 進値が IEEE 754 でどのように丸められ、符号・指数・仮数として保存されるかを確認するためのツールです。

なぜ 0.1 は 2 進浮動小数点で正確に残らないのですか?

0.1 は有限の 2 進展開を持たないためです。選んだフォーマットは最も近い 2 進分数を保存するので、小さな丸め誤差が生じます。

float16 と bfloat16 の違いは?

float16 は仮数ビットが多く、1 付近では精度が高めです。bfloat16 は float32 と同じ指数幅を持つため、より広いダイナミックレンジを保てますが、仮数ビットは少なくなります。

共有 URL に入力値が入らないのはなぜですか?

このページは設定だけを共有 URL に含め、入力値はアドレスバーや履歴に残さない設計です。入力値は自分でコピーしない限り外に出ません。

コメント(任意)

負荷軽減のため、必要時のみ読み込みます。