如何在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 關注
- 974 瀏覽
添加回答
舉報
0/150
提交
取消