Android ndk atof()

时间:2014-03-23 13:43:54

标签: android android-ndk atof

您好我有一个使用ndk

的android项目

有一个c函数atof()定义了

static __inline__ double atof(const char *nptr)
{
    return (strtod(nptr, NULL));
}

但不知何故,它总是导致0.0

error_printf("found %s parsed %d \n",nextArg, atof(nextArg));
found 44 parsed 0

任何想法为什么?

参数nextArg似乎不是问题

error_printf("found %s parsed %d \n","123", atof("123"));
found 123 parsed 0 

1 个答案:

答案 0 :(得分:2)

将打印消息从%d(需要32位整数)更改为%f,这需要64位浮点值。

您的print语句显示其参数的低32位,由于您选择的测试输入,它恰好全为零。如果您打印atof(123.3),则会看到来自%d的非零值。

当然,请确保您拥有#include <stdlib.h>以确保您拥有atof()strtod()的原型。