Swift中有没有等同于Java的BigInteger
类的类?我打算在Swift中使用大于UInt64
最大值的正整数进行大型计算。
在Swift中处理这些数字的最佳方法是什么?
发布于 2014-08-28 03:19:17
您可以使用Cocoa中的NSDecimalNumber
类。它不是无限精度,但它可以表示38位小数精度,这可能足以满足您的需要。
发布于 2014-12-04 05:17:54
我还在开发一个BigNumber库,你可以用它来做一些大的数字计算。实际上,这个库是基于GNU Multiple Precision (GMP)库的,我写了一个Objective-C / Swift包装器。目前,包括大量运算符重载在内的大整数数学运算是可能的。代码示例如下:
var err : NSError?
var bi1 = BigInt(nr: 12468642135797531)
var bi2 = BigInt(nr: "12345678901011121314151617181920", error: &err)
var res = bi1 * bi2
println("Multiply 2 BigInts: bi1 * bi2 = \(res.toString())")
这会导致:
Multiply 2 BigInts: bi1 * bi2 = 153933852140173822960829726365674325601913839520
可以在以下位置找到该库:https://github.com/githotto/osxgmp
发布于 2017-11-25 03:30:32
我在Swift官方存储库中找到了一个BigInt的原型:https://github.com/apple/swift/blob/master/test/Prototypes/BigInt.swift
您可以将其复制到您的项目中并使用它。也许有一天它会被添加到标准库中。
https://stackoverflow.com/questions/25531914
复制相似问题