文字列を浮動小数点数に変換する必要があります。 atof、の私の理解から数値の後に無効な文字列を渡すとatof()関数が0を返さないのはなぜですか?
printf("%f", atof("1a"));
:文字列が数値でない場合、私は次のコードを使用して、私はatof()
機能は、このために働くだろうかどうかをテストしようとしています0
戻りたいですatofが変換できないときに返される値は0ですが、この行は1.0
を出力します。
どうしてですか?ドキュメントでは、atofは入力が数字でないときは0を返すことを意味すると理解していました。
'strtod()'を使う方が良いかもしれません。 'atof()'は実際に 'float'ではなく' double'を返します。注:関数 'atof()'は、有効な数値として '1'を見て、変換の結果を返します:1.000000。有効な数値が変換されるため、0.000000を返す理由はありません。 – user3629249