我正在尝试制作计算器iphone应用程序而我的老师说我们必须使用NSDecimalNumber。我遇到了很多麻烦。我试图让它的附加部分正确,但我在将一个像1.24这样的数字添加到像33这样的整数时遇到了麻烦。当我希望它是34.24时,结果是34。有谁知道如何制作它以这种方式出来?以下是代码的相关部分
-(void)outputNumber: (NSDecimalNumber*) number
{
//used to format number of decimal places
NSNumberFormatter* formatter = [[[NSNumberFormatter alloc] init] autorelease];
[formatter setMaximumFractionDigits:self.afterDecimal];
//output the number to calculator
NSString* formatNumber = [formatter stringFromNumber:[NSNumber numberWithDouble:[number doubleValue]]];
self.inputLabel.text = [NSString stringWithFormat: @"%@", formatNumber];
if (self.isWaiting == TRUE) {
self.numberB = number;
//change button title default color
[self.myButton setTitleColor:[UIColor colorWithRed:.196 green: .3098 blue: .52 alpha: 1] forState: 0];
}
else {
self.numberA = number;
}
}
if (self.binaryTag == 6) {
self.numberC = [self.numberB decimalNumberByAdding: self.numberA];
}
答案 0 :(得分:0)
实际上NSNumberFormatter
无效NSDecimalNumber
。它首先将所有内容转换为double
。
使用NSDecimalNumber
时,请尝试使用自己的方法对其进行舍入,然后将其转换为NSString
。使用NSNumberFormatter
,您将失去精确度。