まったくの初心者の質問ですが、これは私を怒らせています!私はこれを試しています:
myInt = [myFloat integerValue];
しかし、本質的にintegerValueはfloatでは機能しないというエラーが表示されます。
どうすればいいのですか?
まったくの初心者の質問ですが、これは私を怒らせています!私はこれを試しています:
myInt = [myFloat integerValue];
しかし、本質的にintegerValueはfloatでは機能しないというエラーが表示されます。
どうすればいいのですか?
C スタイルのキャスト構文が Objective C で機能すると確信しているので、それも試してみてください。
int myInt = (int) myFloat;
少なくとも、コンパイラの警告を黙らせるかもしれません。
どうしたの:
int myInt = myFloat;
これはデフォルトの丸め規則を使用することに注意してください。これはゼロに向かっています (つまり、-3.9f は -3 になります)。
int myInt = (int) myFloat;
私にとってはうまくいきました。
int myInt = [[NSNumber numberWithFloat:myFloat] intValue];
まあ、それは1つのオプションです。回り道が好きなら、NSString を使ったものも考えられます。複雑な代替手段があるのに、なぜ簡単なのでしょうか? :)
C も使用できますlroundf(myFloat)
。
非常に役立つヒント: Xcode のエディターで、次のようにコードを入力します。
myInt = roundf(someFloat);
次に、コントロール/右クリックして定義roundf
にジャンプします(または単にコマンドクリックします)。
すると、利用可能な機能の非常に長いリストが明確に表示されます。(全部覚えるのは無理なので、この裏ワザを使ってください。)
たとえば、手元の例では、それlrintf
があなたが望むものである可能性が高いです。
さらなるヒント: これらの多くの機能に関するドキュメントを入手すること。Terminal.app (または任意のシェル - Xcode とは関係なく、通常の Terminal.appのみ) で入力するだけman lrintf
で、完全な情報が得られます。それが誰かを助けることを願っています。
アンワインドをサポートするために、Objective-C は完全に新しい言語ではなく、C のスーパーセットであることを思い出してください。
通常の古い ANSI C で実行できることはすべて、Objective-C でも実行できます。