の場合 NSString sample = @"1sa34hjh#@";
NSString to float ... NSStringが数値ではなく、英数字が含まれているとどうなりますか?
Float 64 floatsample = [sample floatValue];
どうなりますか?浮動小数点数には何が含まれますか?
の場合 NSString sample = @"1sa34hjh#@";
NSString to float ... NSStringが数値ではなく、英数字が含まれているとどうなりますか?
Float 64 floatsample = [sample floatValue];
どうなりますか?浮動小数点数には何が含まれますか?
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で好きかもしれません。
ありがとうございます! :)私はドキュメントを理解していない場合にのみ、次回は投稿します。 1つの質問 - 両方とも0.0を返した場合、問題の内容を区別することはできません。 – Namratha
あなたの入力は '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ではなく1.0を実際に返します"それを説明できますか?私は完全に理解していませんでした。 – Namratha