Swiftpack.co - Package - erikstrottmann/Rations

Rations

Build Status Version Supported Package Managers Supported Platforms

A rational number type for Swift.

Rations is a rational number value type for Swift. It allows you to perform calculations on fractional numbers without the loss of precision caused by floating-point arithmetic. Rational numbers are useful for representing currency and for other applications where exact results, not approximations, are desired.

For example, the fraction 1/3 can be exactly represented as a rational number, but not as a floating point number:

let x: Rational = 1 / 3
// x == 1/3
let y: Double = 1 / 3
// y == 0.3333333333333333

Rations does have a performance penalty compared to Swift’s native floating point types. You might not want to use Rations in performance-sensitive areas. Each operation that returns a rational number involves calculating the greatest common divisor of the numerator and denominator using the Euclidean algorithm.

Install

Rations requires Swift 4.2 or higher. It supports iOS, macOS, tvOS, watchOS, and Linux.

Swift Package Manager

Add the following line to your Package.swift:

.package(url: "https://github.com/erikstrottmann/Rations.git", from: "0.1.0"),

CocoaPods

Add the following line to your Podfile:

pod 'Rations', '~> 0.1.0'

Carthage

Add the following line to your Cartfile:

github "erikstrottmann/Rations" ~> 0.1.0

Usage

let x: Rational = 1 / 4
let y: Rational = 2 / 3
let z = x + y
// z == 11/12

Contributing

Open an issue or a pull request!

License

MIT licensed, © 2018 Erik Strottmann.

Github

link
Stars: 2
Help us keep the lights on

Dependencies

Used By

Total: 0

Releases

0.1.0 - Nov 25, 2018

Initial release of Rations.