Как насчет использования stringValue?
1) NSDecimalNumber to String
2) подстрока последняя
3) String to NSDecimalNumber
Нижепример Swift 3
func popLastNumber(of number: NSDecimalNumber) -> NSDecimalNumber {
let stringFromNumber = number.stringValue //NSNumber property
let lastIndex = stringFromNumber.endIndex
let targetIndex = stringFromNumber.index(before: lastIndex)
let removed = stringFromNumber.substring(to: targetIndex)
return NSDecimalNumber(string: removed)
}
Если ваш входной номер представляет собой одну цифру, он вернет NaN.
Вы можете заменить его на NSDecimalNumber.zero, если вам нужно.
Может работать как кнопка удаления на калькуляторе.
Это не очень проверено.
Если кто-то обнаружил другое дело NaN, пожалуйста, сообщите об этом.