Nuggle

常见的编译型语言会在整数和浮点数之间保持明显的区分。此软件包的目的是允许执行数学运算,而无需进行类型转换。

注意:对根式的支持仍处于非常实验性的阶段。

正如 https://forums.swift.org/t/why-does-swift-not-support-rational-numbers/62725 中所述的原因,这种抽象在通用的、有用的方式中是不可行的。 值得注意的是,性能损失和溢出问题的增加使得它仅适用于部分情况。 如果您选择使用此软件包,请牢记这一点。

此软件包的目标

非目标

示例

    let m: Nuggle = 2.5
    let n: Nuggle = 1.5
    let p: Nuggle = 1

    let ex: Nuggle = 2.5 + 1.5 + 1

    XCTAssertEqual(m + n + p, ex)

    XCTAssertEqual(m + n, 4)
    XCTAssertEqual(m + n + p, 5)
    XCTAssertEqual(m + n + p, 4 + 1.6/4.8 + 2/3)

    XCTAssertEqual(m / n, 5 / 3)
    XCTAssertEqual((m / n).description, "5/3")

    XCTAssertEqual(ex.exactInt(), 5)

    XCTAssertEqual((m * 3).double(), 7.5)

许可协议

除非另有说明,否则此软件包中的所有文件均为 NOTICE 文件中提到的软件包贡献者的版权所有,并根据 Apache 2.0 许可协议 授权,该协议允许用于商业用途。