【发布时间】:2011-06-11 06:01:43
【问题描述】:
在我的代码中,我使用浮点数进行货币计算,但四舍五入产生了不希望的结果,因此我试图将其全部转换为 int。在我的 init 函数中,尽可能少地改变基础设施,我这样做了:
-(id)initWithPrice:(float)p;
{
[self setPrice:(int)(p*100)];
}
我在主要部分乘以 100 b/c,数值以 .xx 到 2 位小数给出。我异常地注意到,对于 float 1.18,int 将其四舍五入为 117。有人知道它会这样做吗?浮动将其保留为 1.18。我预计 int equiv 为 118 美分。
谢谢。
【问题讨论】:
-
如果可能的话,我会尝试使用 NSDecimalNumber 而不是浮点数来存储货币值。
标签: iphone objective-c floating-point int