首先,我使用 NSDecimalNumbers 因为我正在处理货币。我对十进制数本身没有任何问题,我想知道是否可以同时乘以 3 个 NSDecimalNumber(s)。
换句话说,如果我将 3 个整数相乘,我会:
int a = 2;
int b = 5;
int c = 7;
int x = a * b * c;
但是,为了将 NSDecimalNumbers 相乘,您必须使用该decimalNumberByMultiplyingBy
方法。
使用这种方法,我必须进行 2 次计算才能将我正在处理的 3 个 NSDecimalNumbers 相乘,如下所示:
NSDecimalNumber *d1 = [NSDecimalNumber decimalNumberWithString:@"1.502"];
NSDecimalNumber *d2 = [NSDecimalNumber decimalNumberWithString:@"12.472"];
NSDecimalNumber *d3 = [NSDecimalNumber decimalNumberWithString:@"0.765"];
//Calculation
NSDecimalNumber *initialValue = [d1 decimalNumberByMultiplyingBy:d2];
NSDecimalNumber *finalValue = [initialValue decimalNumberByMultiplyingBy:d3];
//Formatting
NSString *output = [NSString stringWithFormat:@"%@", finalValue];
NSDecimalNumber *n = [NSDecimalNumber decimalNumberWithString:output];
//r is my NSNumberFormatter, which I've configured elsewhere
NSString *s = [r stringFromNumber:n];
NSLog(@"%@",s);
有没有办法同时乘以所有 3 个 NSDecimalNumbers 而不是这种笨拙的方法?