numeric_limits :: digit10的精確含義是什麼? 計算器中的其他一些相關的問題,讓我覺得這是一個雙重的最大精度,但numeric_limits <double> :: digits10是什麼意思
- 以下原型開始工作(sucess爲true)時,精度大於17(= = 2 + numeric_limits :: digits10)
- 使用STLPort,readDouble == infinity結束;與微軟的STL,readDouble == 0.0。
- 這個原型有什麼樣的意思:)?
這裏是原型:
#include <float.h>
#include <limits>
#include <math.h>
#include <iostream>
#include <iomanip>
#include <sstream>
#include <string>
int main(int argc, const char* argv[]) {
std::ostringstream os;
//int digit10=std::numeric_limits<double>::digits10; // ==15
//int digit=std::numeric_limits<double>::digits; // ==53
os << std::setprecision(17);
os << DBL_MAX;
std::cout << os.str();
std::stringbuf sb(os.str());
std::istream is(&sb);
double readDouble=0.0;
is >> readDouble;
bool success = fabs(DBL_MAX-readDouble)<0.1;
}
相關:[花車分數精確度(HTTP:/ /stackoverflow.com/questions/3310276/decimal-precision-of-floats)和[是6還是7.22?](ht TP://stackoverflow.com/q/30688422/183120)。 – legends2k 2015-08-25 07:39:12