如何从 NSDecimalNumber 获取绝对值?

How to get an absolute value from NSDecimalNumber?

如何从 NSDecimalNumber 中获取绝对值?从 Integer 中获取绝对值很容易,但我需要从 NSDecimalNumber 中获取一个。我在几年前找到了答案(例如 Objective-C),但我希望在 2020 年的 Swift 现在会更容易。

来自我的 playground 的代码:

import UIKit

var str = "Hello, playground"

// absolute value

let intValue: Int = -5
let absoluteIntValue = abs(intValue) // works
print("\(absoluteIntValue)") // 5

let value: NSDecimalNumber = -5.234
let absoluteValue = abs(value) // doesn't work. Gives an error: Cannot convert value of type 'NSDecimalNumber' to expected argument type 'Int32'
print("\(absoluteValue)")

只需将 NSDecimalNumber 替换为(本地)Decimal。通用 abs 函数还考虑了 Decimal 类型

let value: Decimal = -5.234
let absoluteValue = abs(value) 
print(absoluteValue)