1

保存された数値を読み取り、保存された値 (たとえば $100) に対して %10 の利率で利息を計算する単純なコードは何ですか。次に、古い値の代わりに新しい値を保存します。私はこれに取り組んでいました:

NSNumber *bankTemp = [[NSNumber alloc] initWithInt:[[NSUserDefaults standardUserDefaults] integerForKey:@"bank"]];  
bankTemp = bankTemp + (bankTemp * .10);
[[NSUserDefaults standardUserDefaults] setInteger:bankTemp forKey:@"bank"];

bankTemp100ドルになります。私は途中で何か間違ったことをしていると確信しています。修正するにはどうすればよいですか?

編集: これは宿題ではありません。トレーディングゲームアプリをやっています。

編集:

私は今ここまで来ました:

        NSNumber *bankTemp = [[NSNumber alloc] initWithInt:[[NSUserDefaults standardUserDefaults] integerForKey:@"bank"]];  
        bankTemp = [bankTemp intValue] * 1.10;
        [[NSUserDefaults standardUserDefaults] setInteger:[bankTemp intValue] forKey:@"bank"];

編集:

セントに対処するために、私は...それらを省略しています!

ゲームはそれらを必要としないので、面倒な価値はありません. 整数です。

人々がセントに対処するためにどのような解決策を持っているか知りたいので、引き続きセントについての考えを投稿してください.

4

3 に答える 3

3

NSNumber は必要ありません。NSNumber は、プリミティブな数値型をラップするクラスなので、Cocoa コレクションなどで使用できます。数学を行いたい場合は、プリミティブを使用する必要があります。ただ行う:

NSInteger bankTemp = [[NSUserDefaults standardUserDefaults] integerForKey:@"bank"];  
bankTemp = bankTemp + bankTemp * 0.10;
[[NSUserDefaults standardUserDefaults] setInteger:bankTemp forKey:@"bank"];

また、お金を保管するには、セントをどのように扱いたいかを考慮する必要があります。文字通り 5.25 ドルを持てるように浮動小数点数を使用したくなるかもしれませんが、浮動小数点数は不正確であり、同等性などを比較するときにあらゆる種類の問題を引き起こすため、通常は通貨を可能な限り最小の単位で整数として格納し、次のように除算することをお勧めします。より大きな額面を取得します。したがって、ドルとセントを保存する場合は、$100.00 を 10000 と表します。

于 2010-06-25T02:56:46.810 に答える
1

編集:スクラッチ、NSIntegerでそのような乗算を行うことはできません。

要約すると、値に 10% を追加するには、Value * 1.10 を実行できます。値の 10% を知りたい場合は、value * 0.10 を実行します。

毎月の計算、または時間の経過に伴う利息を検討している場合は、これらの式のいずれかを使用する必要があります。

于 2010-06-25T02:53:42.053 に答える
1

最も重大な問題は、そのように NSNumber を乗算できないことです。NSNumber はインスタンスであり、スカラー型ではありません。浮動小数点数または整数として、実数の乗算に固執します。

(フロートをお勧めします。)

于 2010-06-25T02:56:02.647 に答える