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

如何在C ++中将字符串转换为double?我想要一个在字符串不是数字时返回0的函数。



catspeake
浏览 917回答 3
3回答

慕工程0101907

最简单的方法是使用boost :: lexical_cast:double value;try{&nbsp; &nbsp; value = boost::lexical_cast<double>(my_string);}catch (boost::bad_lexical_cast const&){&nbsp; &nbsp; value = 0;}

互换的青春

atof和strtod可以做您想要的,但是非常宽容。如果您不想接受像“ 32asd”这样的字符串作为有效字符串,则需要将strtod包装在这样的函数中:#include <stdlib.h>double strict_str2double(char* str){&nbsp; &nbsp; char* endptr;&nbsp; &nbsp; double value = strtod(str, &endptr);&nbsp; &nbsp; if (*endptr) return 0;&nbsp; &nbsp; return value;}
打开App,查看更多内容
随时随地看视频慕课网APP