MonetaryAmount
货币和货币数额的 Swift 表现,以及 ISO 4217 货币命名。支持单一货币或多货币的货币数额的操纵和组合。
按照 ISO 4217 标准指定的针对每种货币处理小数单位(例如,美元的分数)。简单的操纵包括合并/组合数额。
具有相同 Currency
的 MonetaryAmount
值将相加,具有 独特 Currency
值的 MonetaryAmount
值将分别添加到结果中。
安装
CocoaPods
pod 'MonetaryAmount', '~> 1.1.0'
Swift 包管理器
dependencies: [
.package(url: "https://github.com/SoftwareEngineerChris/MonetaryAmount.git", from: "1.1.0")
]
使用示例
let moneyA = 12.00.in(.USD)
let moneyB = 18.00.in(.USD)
let moneyC = 6.00.in(.GBP)
// result would equal [30.00.in(.USD), 6.00.in(.GBP)]
let result = [moneyA, moneyB, moneyC].consolidating(moneyB)
金额的底层值由一个DynamicRoundedDecimal
表示,它自己使用了Swift的Decimal
类型。DynamicRoundedDecimal
根据指定货币的minorUnit
自动进行舍入。
构建
// moneyA and moneyB are equal and represent US$28.53
let moneyA = MonetaryAmount(currency: Currency.USD, value: Decimal(string: "28.529372")!)
let moneyB = 28.53.in(.USD)
注意
MonetaryAmount
不执行任何外汇或货币转换,它保留每个单独货币的小计。