使用NSDecimalNumber我有一个计算得知是这样的:在Objective-C
Price = value * randomNumberBetween(decimalValueA, decimalValueB)
我用花车/双打最初产生这个。然而,在查看一些更多的objective-c之后,曾多次提到计算货币时应该使用NSDecimalNumber。 我的问题是,我用这个“价格”的变量,在比较和东西,例如:
if (deposit/price) < 0.2
return price*0.05;
使用NSDecimalNumber使得这一切变得更加困难。据我所知,我应该将任何幻数(在本例中为0.2和0.05)转换为NSDecimalNumber,然后我可以比较它们并使用诸如NSDecimalMultiply之类的函数。
另外,如果我有一个功能是一样的东西:
return (minRandomPercentage + ((maxRandomPercentage - minRandomPercentage) * (randomNumber)
它最终成为嵌套函数的这个荒谬的字符串调用,如:
return [minRandomPercentage decimalNumberByAdding:[[maxRandomPercentage decimalNumberBySubtracting: minRandomPercentage] decimalNumberByMultiplyingBy:random]]
这是严重怎么的Objective-C处理小数?任何人都可以给我任何线索,告诉我如何使这个难度更小?如果我可以和结果进行比较,而不必投射每一个魔法数字,我就可以与嵌套的函数调用一起生活。
如果你在处理货币,为什么你不用原始整型数据类型?如果您的价值以“美分”而非“美元”(代替您自己的国际化)来表示,则您无需担心分数金额。 – 2011-04-01 03:27:25