0

我正在尝试制作一个计算器 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]; 
    }
4

1 回答 1

0

实际上NSNumberFormatter不能与NSDecimalNumber. 它把一切都变成了double第一个。

使用NSDecimalNumber的时候尽量用自己的方法四舍五入再转换成NSString。使用 aNSNumberFormatter您将失去精度。

于 2013-04-10T09:11:08.533 回答