我不知道如何获得整体&小数值从NSDecimalnumber.

例如,如果我有10,5,如何获得10个和5?

如果我有10和5,如何回到10,5?


嗯ok,那就是寻找更好的!

但是我有的关注。关于损耗小数。

这是一个应用程序,这将是国际的。例如,如果一个用户定价格"124,2356"我想要负载和保存的确切数字。


嗯,好,这是方式,但是不尊重#的小数位数。如果存在一个方法知道,从目前的地方我设置的。

这是因为表示货币价值的...

有帮助吗?

解决方案

我使用的2的规模,因为你说这是对货币但你可以选择使用另一个四舍五入的规模。我也忽略了任何例外四舍五入可能带来的由于这是一个非常简单的例子。

NSDecimalNumberHandler *behavior = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundDown scale:0 raiseOnExactness:NO raiseOnOverflow:NO raiseOnUnderflow:NO raiseOnDivideByZero:NO];
NSDecimalNumber *price = /* eg. 10.5 */;
NSDecimalNumber *dollars = [price decimalNumberByRoundingAccordingToBehavior: behavior];
NSDecimalNumber *cents = [price decimalNumberBySubtracting: dollars];

这会给你10和0.5在 dollarscents 变量分别。如果你想要整个号码可以使用这种方法来增加你的 cents 通过一个功率为10。

cents = [cents decimalNumberByMultiplyingByPowerOf10: 2];

这反过来将乘你的 cents 100,给你10 5 dollarscents.你也应该知道,你可以使用的消极力量的10这里的鸿沟。

所以,

cents = [cents decimalNumberByMultiplyingByPowerOf10: -2];

将"撤消"这最后一个方法。

其他提示

不确定目标对象c具有什么数学函数,但类似 通用标签

一个更清晰的例子(十位数的余弦) 通用标签

另一个问题 通用标签

小数点后10位取决于小数位数...例如 通用标签

需要您将时间乘以100

如果您无权访问数学fns,则可能会起作用: 通用标签

这可能会给您带来麻烦,循环可能永远不会终止,在这种情况下,您将不得不在其中放置一个计数器: 通用标签

double floor (double x);是POSIX函数。此函数可用于查找不大于x的最高整数值。 通用标签

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top