在c++中有替代atof的方法吗?



我发现atof在它将解析的字符串的大小上是有限的。

的例子:

float num = atof("49966.73");
cout << num;

49966.7显示
num = atof("499966.73");
cout << num;

显示499966

我需要一些东西,将解析整个字符串准确,为浮点数,而不仅仅是前6个字符。

使用<iomanip>标准库中的std::setprecisionstd::fixed,正如评论中提到的那样,由于float类型缺乏精度,仍然会存在转换问题,为了获得更好的结果,使用doublestd::stod进行转换:

float num = std::atof("499966.73");
std::cout << std::fixed << std::setprecision(2) << num;
double num = std::stod("499966.73");
std::cout << std::fixed << std::setprecision(2) << num;

第一个打印499966.72,第二个打印499966.73

相关内容

  • 没有找到相关文章

最新更新