为了账号安全,请及时绑定邮箱和手机立即绑定

如何在C ++中将字符串转换为double?

如何在C ++中将字符串转换为double?

C++
catspeake 2019-11-30 10:48:33
如何在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;

}


查看完整回答
反对 回复 2019-11-30
?
互换的青春

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;

}


查看完整回答
反对 回复 2019-11-30
  • 3 回答
  • 0 关注
  • 916 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信