DBL_EPSILON、FLT_EPSILONの使用方法について
2022-03-02 06:05:53
DBL_EPSILON と FLT_EPSILON は、主に単精度と倍精度の比較で使用されます。
double a = 0.5;
if (a == 0.5) //correct
x++;
double b = sin(M_PI / 6.0);
if (b == 0.5) //error
x++;
最初のものがより正しく、2番目のものは正しいかもしれないし、間違っているかもしれません。b=0.5の結果は、プロセッサ、コンパイラのバージョン、設定に依存します。例えば、Visual C++ 2010コンパイラでは、bは0.499999999999994とコンパイルされ実行されます。
正しい比較の仕方は、このようなものです。
double b = sin(M_PI / 6.0);
if (fabs(b - 0.5) < DBL_EPSILON)
x++;
上記の例では EPSILONが最小の誤差となる。 それは EPSILON XがXと等しくない最小の正の数。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例