如何在C ++中将字符串转换为double?我想要一个在字符串不是数字时返回0的函数。
3 回答
慕工程0101907
TA贡献1887条经验 获得超5个赞
最简单的方法是使用boost :: lexical_cast:
double value;
try
{
value = boost::lexical_cast<double>(my_string);
}
catch (boost::bad_lexical_cast const&)
{
value = 0;
}
互换的青春
TA贡献1797条经验 获得超6个赞
atof和strtod可以做您想要的,但是非常宽容。如果您不想接受像“ 32asd”这样的字符串作为有效字符串,则需要将strtod包装在这样的函数中:
#include <stdlib.h>
double strict_str2double(char* str)
{
char* endptr;
double value = strtod(str, &endptr);
if (*endptr) return 0;
return value;
}
- 3 回答
- 0 关注
- 916 浏览
添加回答
举报
0/150
提交
取消