如何在C ++中將字符串轉(zhuǎn)換為double?我想要一個(gè)在字符串不是數(shù)字時(shí)返回0的函數(shù)。
3 回答

慕工程0101907
TA貢獻(xiàn)1887條經(jīng)驗(yàn) 獲得超5個(gè)贊
最簡(jiǎn)單的方法是使用boost :: lexical_cast:
double value;
try
{
value = boost::lexical_cast<double>(my_string);
}
catch (boost::bad_lexical_cast const&)
{
value = 0;
}

互換的青春
TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
atof和strtod可以做您想要的,但是非常寬容。如果您不想接受像“ 32asd”這樣的字符串作為有效字符串,則需要將strtod包裝在這樣的函數(shù)中:
#include <stdlib.h>
double strict_str2double(char* str)
{
char* endptr;
double value = strtod(str, &endptr);
if (*endptr) return 0;
return value;
}
- 3 回答
- 0 關(guān)注
- 973 瀏覽
添加回答
舉報(bào)
0/150
提交
取消