Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
文字列をフロートに変換する必要があります。文字列が数値でない場合は、0 を返します。
atof()次のコードを使用して、関数がこれに対して機能するかどうかをテストしようとしました。
atof()
printf("%f", atof("1a"));
atof についての私の理解では、atof が変換できない場合に返される値は 0 ですが、この行は1.0.
1.0
なぜこれが起こるのですか?ドキュメントにより、入力が数値でない場合は常に atof が 0 を返すことを意味していることを理解しました。
それでも、この行は 1.0 を出力します。
atofこの場合、少なくとも1つの数値を解析できるため、機能1しました。
atof
1
しかし:
char a[]="a1"; printf("%f\n",atof(a));
期待どおり、戻り値 0.0 が返されたはずです。