C++ では、問題なく denorm 数を変数に格納できます。
double x = std::numeric_limits<double>::denorm_min();
次に、この変数を問題なく出力できます。
std::cout<<std::setprecision(std::numeric_limits<double>::max_digits10)
std::cout<<std::scientific;
std::cout<<x;
std::cout<<std::endl;
そして、それは印刷されます:
4.94065645841246544e-324
しかし、この数値を解析しようとすると問題が発生します。この数値がファイル内に保存され、文字列として読み取られると想像してください。問題はそれです:
std::string str = "4.94065645841246544e-324";
double x = std::stod(str);
例外をスローしstd::out_of_range
ます。
私の質問は次のとおりです。文字列に格納されたデノルム値を変換する方法は?