【发布时间】:2012-12-04 08:04:08
【问题描述】:
我想用 C 语言编写一个函数,它有一个字符串参数并返回一个双精度数。
例如,当字符串为fsldnf213414fasfa 时,它应该返回213414。
但它也应该能够将fasfasf123.412412fasfff 之类的浮点数返回为123.412412。
我已经有一个只能提取整数而不是浮点数的函数:
double get_num(const char* s)
{
unsigned int limit = UINT_MAX / 10;
double value = 0;
if ( !s ) {
return 0;
}
for ( ; *s; ++s ) {
if ( value < limit ) {
if ( isdigit(*s) ) {
value *= 10;
value += (*s - '0');
}
}
else {
return UINT_MAX;
}
}
return value;
}
【问题讨论】:
-
检查
strtod。 -
我已经检查过了,但我还没有找到将其返回为双数的方法,只能提取为数字+浮点+数字。
标签: c floating-point double extract floating-point-conversion