如何在 C++ 中将字符串转换为浮点数

概要

在使用 Microsoft C 或 C/C++ 开发的应用程序中,sscanf() 函数可以很好地替代 atof() 函数,将数字字符串转换为浮点数。如果字符串表示的数无效,atof() 将返回零值,而 sscanf() 会返回更多有用的错误信息。应用程序可以将 sscanf() 返回的错误值用于 matherr() 函数以执行错误处理。除非真正发生了数学异常,否则 atof() 函数不会调用 matherr()。

下文提供了两种将字符串转换为浮点数的推荐办法。
  • 在调用 atof() 函数前验证要转换的字符串。确保字符串中不包含任何非数值字符,而且小数点和正负号的位置都正确。
  • 使用 sscanf() 函数。它比 atof() 函数慢,但在发生错误时可以提供更详细的信息。
属性

文章 ID:11558 - 上次审阅时间:2005年10月24日 - 修订版本: 1

反馈