MonetaryAmount 1.1.0

MonetaryAmount 1.1.0

SoftwareEngineerChris 维护。



  • SoftwareEngineerChris

MonetaryAmount

Build Status Docs Cocoapods SPM

货币和货币数额的 Swift 表现,以及 ISO 4217 货币命名。支持单一货币或多货币的货币数额的操纵和组合。

按照 ISO 4217 标准指定的针对每种货币处理小数单位(例如,美元的分数)。简单的操纵包括合并/组合数额。

具有相同 CurrencyMonetaryAmount 值将相加,具有 独特 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不执行任何外汇或货币转换,它保留每个单独货币的小计。

另见

ISO 4217的维基百科条目