[解決済み] 0.1 float は 0.1 double よりも大きい。falseになると思っていたのですが... [duplicate]
2023-01-01 07:12:54
質問
させる。
double d = 0.1;
float f = 0.1;
という式が必要です。
(f > d)
戻る
true
または
false
?
経験的に、答えは
true
. しかし、私が予想したのは
false
.
として
0.1
は2進数では完全に表現できないのに対して、double は
15
から
16
の精度を持ち、浮動小数点以下の桁数は
7
に近いのに対して、ダブルは
0.1
.
について正確な説明が必要です。
0.1
.
どのように解決するのですか?
を変換するときの丸めモードによって、答えが変わってくると思います。
true
を
double
.
float
は24
バイナリ
ビットの精度を持ち
float
は53です。2進法では、0.1です。
double
ということは、丸めれば アップ を24桁目で切り上げると、次のようになります。
0.1₁₀ = 0.0001100110011001100110011001100110011001100110011…₂
^ ^ ^ ^
1 10 20 24
となり、正確な値やより正確な近似値である53桁の値よりも大きくなります。
関連
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み】C++ - 解放されるポインタが割り当てられていないエラー
-
[解決済み] [Solved] Error C1083: Cannot open include file: 'stdafx.h'
-
[解決済み】抽象クラス型の無効なnew-expression
-
[解決済み】「Expected '(' for function-style cast or type construction」エラーの意味とは?
-
[解決済み] .NETでのdecimal, float, doubleの違い?
-
[解決済み] 通貨を表すのにDoubleやFloatを使ってはいけないのですか?
-
[解決済み] floatとdoubleの違いは何ですか?
-
[解決済み] C++でdouble(またはfloat)がNaNかどうか確認する
-
[解決済み] なぜ0.1を何度も足すとロスレスのままなのか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み】クラステンプレートの引数リストがない
-
[解決済み】C++のGetlineの問題(オーバーロードされた関数 "getline "のインスタンスがない
-
[解決済み】C++コンパイルタイムエラー:数値定数の前に期待される識別子
-
[解決済み】C++でランダムな2倍数を生成する
-
[解決済み】テンプレートの引数1が無効です(Code::Blocks Win Vista) - テンプレートは使いません。
-
[解決済み】fpermissiveフラグは何をするのですか?
-
[解決済み】Visual Studio 2013および2015でC++コンパイラーエラーC2280「削除された関数を参照しようとした」が発生する
-
[解決済み】浮動小数点数の乱数生成
-
[解決済み】エラー。引数リストに一致するコンストラクタのインスタンスがない