C - strtod()无法识别小数点

时间:2015-07-06 12:59:03

标签: c strtod

我有一个缓冲区,其中有"随机"数字,以昏迷分开。例如:

" 1589.3,12478.359,485.39971"等

我需要检查小数部分的长度和整数部分。

我做了一些研究,我决定在我的缓冲区上使用strtod(),以获得一个数字。

然而,它并没有按预期工作。所以我尝试了一个简单的例子:

int number;
char myNumber[10] = "3113.14";
number = strtod (myNumber,NULL);
printf("%d\n", number);

这打印3113,所以我做了一些研究,我发现我应该使用%f,因为它不是整数。

所以我纠正了它:

int number;
char myNumber[10] = "3113.14";
number = strtod (myNumber,NULL);
printf("%f\n", number);

然后它打印我0.000000

我尝试使用昏迷(,),使用常规jeyboard(。)中的点和数字键盘中的点(。)。他们都给了我相同的结果。

我正在使用开发c ++(我无法选择,我不是我工作站的管理员)。

感谢您的关注和帮助:)

1 个答案:

答案 0 :(得分:3)

使用double类型:

double number;
char myNumber[10] = "3113.14";
number = strtod (myNumber,NULL);
printf("%lf\n", number);