字符串浮动转换?

jma*_*erx 2 c c++

我想知道什么样的算法可以用来将类似"4.72"的东西变成浮点数据类型,等于

float x = 4.72;
Run Code Online (Sandbox Code Playgroud)

Jer*_*fin 10

scanf,operator>>对于istreams,strtof将是明显的选择.

atof,但是,像atoi,它没有办法告诉你,有一个在输入一个错误,所以一般情况下最好是避免两者.


Eug*_*nca 10

对于C++,您可以使用boost :: lexical_cast:

   std::string str( "4.72" );
   float x = boost::lexical_cast< float >( str );
Run Code Online (Sandbox Code Playgroud)

对于C,您可以使用sscanf:

   char str[]= "4.72";
   float x;
   sscanf( str, "%f", &x );
Run Code Online (Sandbox Code Playgroud)