0

我有一个缓冲区,其中有“随机”数字,用逗号分隔。例如 :

“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

我尝试使用逗号 (,),使用普通模板 (.) 中的点和数字键盘 (.) 中的点。他们都给了我相同的结果。

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

感谢您的关注和帮助:)

4

1 回答 1

4

使用双精度类型:

double number;
char myNumber[10] = "3113.14";
number = strtod (myNumber,NULL);
printf("%lf\n", number);
于 2015-07-06T13:04:31.580 回答