整数浮動小数点数の割り算は1.fになることが保証されているのですか?
2023-10-12 09:32:31
質問
と書くと
int x = /* any non-zero integer value */;
float y = x;
float z = y / y;
は
z
は正確に1.fであることが保証されていますか?
どのように解決するのですか?
C++の実装がIEEE754を使用している場合、はい、これは保証されています。(除算演算子は、可能な限り最適な浮動小数点値を返すために必要です)。
は
だけ
の例外は
y / y
でなく、一般に
1.f
の場合は
y
は
NaN
,
+Inf
,
-Inf
,
0.f
そして
-0.f
があるプラットフォームで、または
int
が非常に広いため、特定のインスタンスを
float
で表現することはできません。
float
に設定されています。
+Inf
または
-Inf
1
. 最後のポイントはさておき、あなたの場合、それはつまり
int x = 0;
が唯一の例外を生成することを意味します。
IEEE754は極めて一般的です。しかし、確実に確認するために、値をテストして
std::numeric_limits<float>::is_iec559;
1
プラットフォームは、たとえば、128 ビットの
int
と IEEE754 の 32 ビット
float
の特定の値でこの挙動を示すでしょう。
x
.
関連
-
[解決済み] 文字列をfloatやintにパースするにはどうしたらいいですか?
-
[解決済み] .NETでのdecimal, float, doubleの違い?
-
[解決済み] 文字列が数値(float)であるかどうかを確認するにはどうすればよいですか?
-
[解決済み] なぜ、オブジェクトそのものではなく、ポインタを使用しなければならないのですか?
-
[解決済み] 通貨を表すのにDoubleやFloatを使ってはいけないのですか?
-
[解決済み] C++11の'typedef'と'using'の違いは何ですか?
-
[解決済み] HTML5でfloat入力タイプはありますか?
-
[解決済み] 浮動小数点数の範囲内で乱数を取得するには?
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
-
[解決済み】常に小数点以下2桁を表示する数値の書式設定
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Visual Studio 2015で「非標準の構文; '&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み] error: 'ostream' does not name a type.
-
[解決済み】抽象クラス型の無効なnew-expression
-
[解決済み] クラスにデフォルトコンストラクタが存在しない。
-
[解決済み】エラー。switchステートメントでcaseラベルにジャンプする
-
[解決済み】 while(cin) と while(cin >> num) の違いは何ですか?)
-
[解決済み】Enterキーを押して続行する
-
[解決済み】std::cin.getline( ) vs. std::cin
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み】デバッグアサーションに失敗しました