2011-02-11 2 views

答えて

5

documentationをお読みください。文字列の先頭に空白をスキップ

戻り値

floatとして受信機のテキストの浮動小数点値、。オーバーフロー時にHUGE_VALまたは-HUGE_VAL、アンダーフロー時に0.0を返します。受信機と浮動小数点数の有効なテキスト表現を開始していない場合

0.0返します。

戻り値を調べる最も良い方法は、戻り値を自分で確認することです。小さなプログラムを作成し、.m拡張子のファイルとして保存することができます。

clangを使用してFoundationフレームワークにリンクしてコマンドラインでコンパイルします。

clang floatTest.m -framework foundation -o floatTest 

次に、実行可能ファイルを実行し、出力を確認します。

./floatTest 

印刷された値は1.000000です。あなたの質問に答えるために、文字列が数字で始まっていれば、文字列の数字部分が取得されてfloatに変換されます。上記と同じルールがオーバーフローまたはアンダーフローに適用されます。

ファイルを作成するのが面倒だと思われる場合は、このブログの投稿がminimalist Cocoa programmingで好きかもしれません。

+0

ありがとうございます! :)私はドキュメントを理解していない場合にのみ、次回は投稿します。 1つの質問 - 両方とも0.0を返した場合、問題の内容を区別することはできません。 – Namratha

+0

あなたの入力は '0.0'ではなく' 1.0'を返します。しかし、与えられたものが迷惑文字のない有効な浮動小数点数であるかどうかを調べるには、[NSScanner](http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/)の 'scanFloat:'を使います。クラス/ NSScanner_Class/Reference/Reference.html)。いい人達はすでに[rosettacode.org](http://rosettacode.org/wiki/Determine_if_a_string_is_numeric#Objective-C)で多くの言語のためにこれを行っています。 – Anurag

+0

"あなたの入力は0.0ではなく1.0を実際に返します"それを説明できますか?私は完全に理解していませんでした。 – Namratha

関連する問題