RED*_*AIR 19
(或者std::atof()说C++ - 谢谢jons34yp)
Fre*_*Foo 17
boost::lexical_cast<float>(str);
Run Code Online (Sandbox Code Playgroud)
这个模板函数包含在流行的Boost图书馆集合中,如果你认真对待C++,你需要了解它们.
sbi*_*sbi 17
将字符串转换为任何类型(默认可构造和可流化):
template< typename T >
T convert_from_string(const std::string& str)
{
std::istringstream iss(str);
T result;
if( !(iss >> result) ) throw "Dude, you need error handling!";
return result;
}
Run Code Online (Sandbox Code Playgroud)
strtof
从手册页
strtod(),strtof()和strtold()函数分别将nptr指向的字符串的初始部分转换为double,float和long double表示.
(字符串的初始部分)的预期形式是可选的前导空格,由isspace(3)识别,可选加号('''')或减号('' - '')然后(i) )十进制数,或(ii)十六进制数,或(iii)无穷大,或(iv)NAN(非数字).
/ man page>
atof将字符串转换为double(不是浮点数,因为它的名字会建议.)
作为已经提到的std::strtof()和boost::lexical_cast<float>()新的C++标准的替代品
float stof(const string& str, size_t *idx = 0);
double stod(const string& str, size_t *idx = 0);
long double stold(const string& str, size_t *idx = 0);
Run Code Online (Sandbox Code Playgroud)
用于错误检查字符串到浮点转换.GCC和MSVC都支持他们(记得#include <string>)
| 归档时间: |
|
| 查看次数: |
19910 次 |
| 最近记录: |