BigDecimal

BigDecimal 包在 Swift 中提供了任意精度(性能可调上限)和固定精度的十进制算术运算。

其功能分为以下几类

依赖项

BigDecimal 需要 macOS 13.3+、iOS 16.4+、macCatalyst 13.3+、tvOS 16.4+ 或 watchOS 9.4+ 版本的 Swift。它还要求 Int 类型为 64 位类型。

BigDecimal 包依赖于 BigInt、UInt128 和 swift-numerics 包。

dependencies: [
  .package(url: "https://github.com/mgriebling/BigInt.git", from: "2.2.0")        
  .package(url: "https://github.com/apple/swift-numerics", from: "1.0.0"),
  .package(url: "https://github.com/mgriebling/UInt128.git", from: "3.1.5")
]

用法

在您项目的 Package.swift 文件中添加类似以下的依赖项

dependencies: [
  .package(url: "https://github.com/mgriebling/BigDecimal.git", from: "3.0.2"),
]

已知问题

某些 Decimal32 转换和操作的测试目前失败。如果您想修复被注释掉的测试,我鼓励您这样做并反馈您的修复。对于大多数使用 Decimal64 和 Decimal128 类型的人来说,我认为这不是什么大问题。坦率地说,我只使用 BigDecimal 任意精度,因此可能不会将此作为紧急事项处理。Decimal32 的主要问题似乎在于计算后如何进行舍入。

文档

文档使用 DocC 插件构建,并在此 GitHub Pages 位置发布

https://mgriebling.github.io/BigDecimal/documentation/bigdecimal

文档也可在 BigDecimal.doccarchive 文件中找到。