繁体   English   中英

计算对目标c的兴趣?

[英]Calculating interest in objective c?

读取存储的数字,以%10的比率计算存储值(例如$ 100)的利息是什么简单的代码。 然后,我用新值代替旧值。 我正在为此:

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

bankTemp将是$ 100。 我相当确定我在中线做错了。 我该怎么做才能纠正它?

编辑:这不是功课。 我正在开发一个交易游戏应用程序。

编辑:

我到现在为止:

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

编辑:

为了处理美分,我要...省略它们!

游戏不需要它们,因此它们不值得麻烦。 它是整数。

我很想知道人们如何解决美分问题,所以请继续将您的想法发表在美分上。

您不需要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。

编辑:从头开始,您无法使用NSInteger进行乘法运算。

作为摘要,要将10%添加到值中,可以执行Value * 1.10如果只想知道值的10%是什么,请执行value * 0.10

如果您要进行每月计算或随着时间的推移感兴趣,则需要使用这些公式之一。

最重要的问题是您不能以这种方式乘以NSNumber。 NSNumber是一个实例,而不是标量类型。 坚持用实数乘以浮点数或整数。

(我建议一个浮标。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM