// 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;
}
}
出力
2.22045e-016
equal