std::string str = "12345679012.124678";
double back = boost::lexical_cast<double>( str );
std::string str2 =boost::lexical_cast<std::string>( back );
//here str2 is equal to str
这里没有丢失是正常的(即最终字符串=原始字符串),即使数字有效数字大于std::numeric_limit<double>::digits10
(即15)?
答案 0 :(得分:0)
是的,这是正常的。
std::numeric_limit<double>::digits10
是指保证投票不受损的最大位数。
这并不意味着使用比限制更宽的数字而导致的损失,只意味着损失的可能性增加。