相关疑难解决方法(0)

numeric_limits <double> :: digits10是什么意思?

numeric_limits :: digits10的确切含义是什么?stackoverflow中的一些其他相关问题使我认为它是double的最大精度,但是

  • 当精度大于17(== 2 + numeric_limits :: digits10)时,以下原型开始工作(成功为真)
  • 使用STLPort,最后是readDouble == infinity; 使用microsoft的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;
}
Run Code Online (Sandbox Code Playgroud)

c++ stl

15
推荐指数
4
解决办法
7197
查看次数

标签 统计

c++ ×1

stl ×1