Skip to content

Latest commit

 

History

History
63 lines (50 loc) · 1.59 KB

epsilon.md

File metadata and controls

63 lines (50 loc) · 1.59 KB

epsilon

  • limits[meta header]
  • std[meta namespace]
  • numeric_limits[meta class]
  • function[meta id-type]
// C++03
static const T epsilon() throw();

// C++11
static constexpr T epsilon() noexcept;

概要

機械イプシロンを取得する。
これは浮動小数点数の比較のために誤差幅を評価するのに使用できる。

対応するマクロを次の表に挙げる。

対応するマクロ
float FLT_EPSILON
double DBL_EPSILON
long double LDBL_EPSILON

#include <iostream>
#include <cmath>
#include <limits>

int main()
{
  constexpr double e = std::numeric_limits<double>::epsilon();

  std::cout << e << std::endl;

  double a = 0.6 - 0.4;
  double b = 0.2;
  if (std::abs(a - b) <= e) {
    std::cout << "equal" << std::endl;
  }
  else {
    std::cout << "not equal" << std::endl;
  }
}
  • epsilon()[color ff0000]
  • std::abs[link /reference/cmath/abs.md]

出力

2.22045e-016
equal

参照