0

こんにちは、ndkを使用するAndroidプロジェクトがあります

定義されている ac 関数 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 
4

1 に答える 1

2

印刷メッセージを%d、32 ビット整数%fを期待する から 64 ビット浮動小数点値を期待する に変更します。

print ステートメントは、その引数の下位 32 ビットを表示しています。これは、選択したテスト入力のためにたまたますべてゼロになっています。印刷atof(123.3)すると、 からゼロ以外の値が表示されます%d

そしてもちろん、 との#include <stdlib.h>プロトタイプがあることを確認してください。atof()strtod()

于 2014-03-23T15:54:40.137 に答える