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ください。を使用するNSNumberFormatterと、精度が失われます。

于 2013-04-10T09:11:08.533 に答える