全くの初心者の質問ですが、これは私を怒らせています!私はこれを試しています:
myInt = [myFloat integerValue];
しかし、本質的にintegerValueがfloatで機能しないというエラーが表示されます。
どうすればいいのですか?
Objective-Cで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で行うことができます。
2012年に導入された、より簡潔なアプローチを次に示します。
myInt = @(myFloat).intValue;