char* 转 float:
double atof (const char* str);
/* atof example: sine calculator */ #include <stdio.h> /* printf, fgets */ #include <stdlib.h> /* atof */ #include <math.h> /* sin */ int main () { double n,m; double pi=3.1415926535; char buffer[256]; printf ("Enter degrees: "); fgets (buffer,256,stdin); n = atof (buffer); m = sin (n*pi/180); printf ("The sine of %f degrees is %f " , n, m); return 0; }
string 转 float;
float stof (const string& str, size_t* idx = 0); float stof (const wstring& str, size_t* idx = 0);
#include <iostream> // std::cout #include <string> // std::string, std::stof int main () { std::string orbits ("686.97 365.24"); std::string::size_type sz; // alias of size_t float mars = std::stof (orbits,&sz); float earth = std::stof (orbits.substr(sz)); std::cout << "One martian year takes " << (mars/earth) << " Earth years. "; return 0; }
相关有stoi,stod,stold,以及strtod
由数值转向string:
函数原型:
string to_string (int val); string to_string (long val); string to_string (long long val); string to_string (unsigned val); string to_string (unsigned long val); string to_string (unsigned long long val); string to_string (float val); string to_string (double val); string to_string (long double val);
举例
// to_string example #include <iostream> // std::cout #include <string> // std::string, std::to_string int main () { std::string pi = "pi is " + std::to_string(3.1415926); std::string perfect = std::to_string(1+2+4+7+14) + " is a perfect number"; std::cout << pi << ' '; std::cout << perfect << ' '; return 0; }
但是在 某些编译器里 to_string 不被支持。http://stackoverflow.com/questions/12975341/to-string-is-not-a-member-of-std-says-so-g
解决方法:
http://stackoverflow.com/questions/11063413/erroritoa-was-not-declared-in-this-scope