BigInteger équivalent en Swift?
Est-il un équivalent en Java de la classe BigInteger dans Swift? Je suis attachant à faire de gros calculs dans Swift avec des nombres entiers positifs de plus de UInt64 du nombre maximum. Quelle est la meilleure façon de traiter ces numéros?
- Types décimaux sont généralement de calcul financier, pas juste une précision arbitraire. En Java que vous voulez BigInteger, comme ton titre l'indique, pas BigDecimal comme votre question le corps indique. Le cacao ne comprend pas tout BigInteger type.
Vous devez vous connecter pour publier un commentaire.
Je travaille aussi sur un BigNumber bibliothèque avec laquelle vous pouvez faire quelques grand nombre de calculs. En fait, la bibliothèque est basée sur la GNU Multiple Precision (BPF) de la bibliothèque et j'ai écrit un Objective-C /Swift wrapper.
Actuellement grand entier des mathématiques, y compris beaucoup de la surcharge d'opérateur, est possible.
Un exemple de code va comme:
qui se traduit par:
Vous pouvez trouver à la bibliothèque: https://github.com/githotto/osxgmp
Vous pouvez utiliser le
NSDecimalNumber
classe de Cacao. Elle n'est pas infinie précision, mais il peut représenter 38 décimales de précision, ce qui peut être assez pour ce que vous avez besoin.Double
?J'ai écrit bibliothèque qui vous permet de travailler avec de grands entiers en Swift. De manière similaire, comme Java est BigInteger. Il y a aussi la surcharge de l'opérateur à rendre le travail plus commode.
Exemple:
https://github.com/kirsteins/BigInteger
C'est ici.
https://github.com/dankogai/swift-pons
Fait BigInt est juste une partie d'elle. En plus de BigInt, vous bénéficiez de:
Mais le meilleur de tous, c'est un protocole orienté de sorte que vous pouvez étendre tout entier comme:
Dan le Générateur de Nombre
J'ai écrit un grand nombre entier et grand double la mise en œuvre de swift, qui n'a pas besoin d'aucun autre bibliothèque. Il suffit de le copier dans votre projet. Il prend en charge les Nombres entiers (BInt) et des Fractions (BDouble) avec la plupart des opérateurs mathématiques comme l'addition, la soustraction, la multiplication, l'exponentiation, le module et la division. Certains optimisé fonctions mathématiques comme factorielle ou pgcd sont également mis en œuvre.
Voici quelques exemples de code:
Vous pouvez l'utiliser librement, sans me donner de crédit, et n'hésitez pas à contribuer si vous le souhaitez.
Vous pouvez le trouver ici: https://github.com/mkrd/Swift-Big-Integer
J'ai trouvé un prototype de type BigInt dans la Swift officiel référentiel: https://github.com/apple/swift/blob/master/test/Prototypes/BigInt.swift
Vous pouvez probablement juste de le copier dans votre projet et l'utiliser. Peut-être qu'un jour il sera ajouté à la bibliothèque standard.