1. ホーム

[解決済み】JavaのFloatとdoubleのデータ型について

2022-04-15 19:36:40

質問

floatデータ型は単精度32ビットIEEE754浮動小数点で、doubleデータ型は倍精度64ビットIEEE754浮動小数点である。

どのような意味があるのでしょうか?また、doubleの代わりにfloatを使ったり、逆にfloatを使ったりするのはどのような場合ですか?

どのように解決するのですか?

その ウィキペディアのページ を参考にするとよいでしょう。

まとめると

  • float は32ビットで表現され、符号が1ビット、指数が8ビット、シグニフィカンドが23ビット(または科学記数法から導かれるもの:2.33728*10 12 33728はシグニフィカンド)。

  • double は64ビットで表現され、符号が1ビット、指数が11ビット、シグニフィカンドが52ビットとなります。

デフォルトでは、Javaは double は浮動小数点数を表します(したがって、リテラルな 3.14double ). また、より大きな数値範囲を与えるデータ型でもあるので、私は float .

の使用を強制するライブラリもあるかもしれません。 float に収まるほど小さくなることが保証されていない限り、一般的には float 's 規定範囲 を選択するのがベストです。 double .

正確さを求める場合 - たとえば、10進数の値が不正確な場合(たとえば 1/10 + 2/10 を行う場合、または 何でも を通貨で使う場合(例えば、システムで10.33ドルを表現する場合)には BigDecimal これは、任意の精度をサポートし、そのような状況をエレガントに処理することができます。