SwiftCompactor

用于简洁显示数字、货币和时间间隔的格式化工具

为何选择 SwiftCompactor?首先,适用于精度要求不高,但空间宝贵的场景。其次,像 $8.6M 这样紧凑的值比像 $8,603,842.35 这样的值更容易理解,降低用户的认知负荷。

作为一个开源 Swift 库提供,可被集成到其他应用中。

CompactorOpenAlloc 开源 Swift 软件工具家族的一部分。

NumberCompactor(数字压缩器)

let c = NumberCompactor()
print(c.string(from: 1_234_567))

=> "1.2M"

默认情况下,数值将显示最多一位小数,必要时四舍五入。

选项

后缀

后缀 描述
k 千 (thousand) 1000^1
M 百万 (million) 1000^2
G 十亿 (billion) 1000^3
T 万亿 (trillion) 1000^4
P 千万亿 (quadrillion) 1000^5
E 百京 (quintillion) 1000^6

有关更多详细信息,请参阅维基百科上的 二进制前缀 页面。

CurrencyCompactor(货币压缩器)

let c = CurrencyCompactor()
print(c.string(from: 1_234_567))

=> "$1.2M"

默认情况下,-100...100 范围内的值将没有小数部分,并在必要时四舍五入。超出此范围的值将显示一位小数,必要时四舍五入。

选项

请注意,roundSmallToWhole 默认为 true,因为当我们习惯于以美分为单位的分数时,$1.1 看起来会很奇怪。

后缀

NumberCompactor() 使用的相同。

TimeCompactor(时间压缩器)

使用 TimeCompactor(),您需要提供一个 TimeInterval 值,将其转换为字符串值。

let c = TimeCompactor()
print(c.string(from: 1_234_567))

=> "14.3d"

let f = TimeCompactor(style: .full)
print(f.string(from: 1_234_567))

=> "14.3 days"

默认情况下,数值将显示最多一位小数,必要时四舍五入。

选项

后缀

后缀将取决于样式,目前有 .short (默认)、.medium.full 三种样式。

short(短) medium(中) full(完整)
s 1
m 分钟 60
h 小时 小时 3,600
d 86,400
y d × 365.25
c 世纪 世纪 y × 100
ky ky 千年 y × 1000

请注意,.medium.full 样式包含复数形式。

另请参阅

此库是 OpenAlloc Project 的成员。

许可证

版权所有 2021, 2022 OpenAlloc LLC

根据 Apache License, Version 2.0(“许可证”)获得许可;除非遵守许可证,否则您不得使用此文件。您可以在以下网址获取许可证副本:

https://apache.ac.cn/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则根据许可证分发的软件按“原样”基础分发,不附带任何形式的明示或暗示的保证或条件。请参阅许可证,了解有关特定语言的权限和限制。

贡献

欢迎贡献。鼓励您提交拉取请求以修复错误、改进文档或提供新功能。

拉取请求不必是生产就绪的功能或修复。它可以是拟议更改的草案,或者只是一个测试,以表明预期的行为存在错误。可以从那里开始讨论拉取请求。

贡献最终应具有足够的测试覆盖率。请参阅当前实体的测试,以了解预期的覆盖率。