Следующий код сделает дополнение, которое вы описали выше:
NSCalculationError calculationError = NSDecimalAdd(&val1, &val1, &val2, NSRoundBankers);
calculationError = NSDecimalAdd(&val1, &val1, &val3, NSRoundBankers);
calculationError = NSDecimalAdd(&val1, &val1, &val4, NSRoundBankers);
при условии, что вы установили val1, val2 и val3 как NSDecimals. В этом случае я использую Банковское поведение округления в случае переполнения.
Мы используем NSDecimal в основе Core Plot Framework , поэтому мы создали некоторые вспомогательные функции, которые делают этот вид математики немного проще (хотя и менее эффективным, из-за копирования структур при каждом вызове функции). Их можно найти в исходном файле CPUtilities.m в проекте.