DUPLICATES possibles: strong>
gros entiers en C #
C # Numéro de décimal signifiable (précision arbitraire) sans Java A > p> blockQuote>J'ai lu la question à Décimals de précision arbitraires en C #? mais je n'ai pas t avoir la bibliothèque J #. J'ai besoin d'une bibliothèque pour des décimales de précision arbitraires avec C #. P>
3 Réponses :
Grande décimale: P>
BIG INT (si vous aimez la solution de J.D., ou souhaitez proposer une classe de type nombre rationnel / fraction. Cela, et moi avons manqué d'en quelque sorte que vous recherchiez des décimales, pas d'INTS): p>
bigInteger code> et
inx code> sont entier uniquement; Ils n'ont aucun soutien aux décimales.
@Gabe: Ugh, c'est vrai. Eh bien, J # est libre au moins :)
Vous pouvez mettre en œuvre votre propre en fonction de la classe BigInteger de .NET 4.0. Je l'ai fait pour le plaisir, il ne fait que la multiplication:
decimal d1 = 254727458263237.1356246819m; decimal d2 = 991658834219519273.110324m; // MessageBox.Show((d1 * d2).ToString()); // OverflowException BigDecimal bd1 = d1; BigDecimal bd2 = d2; MessageBox.Show((bd1 * bd2).ToString()); // 252602734305022989458258125319270.5452949161059356
Je suggère d'utiliser s.insert (décimalpos, ".") Code> au lieu d'appeler la sous-chaîne deux fois et concaténant.
En outre, en utilisant gitinteger code> pour la balance semble survenir. Vous pensez vraiment qu'il est nécessaire de prendre en charge des chiffres en dehors de la plage 10 ** (- 2 63) à Bigint * 10 ** (2 B> 63 - 1) ???
Ceci est en fait assez bon, mais bigdecimal code> devrait probablement être un
struct code> et, comme Ben suggéré, l'échelle devrait probablement être un
int code>.
J'ai vraiment aimé cette idée et terminé le projet de soutien à tous les opérateurs de base, voir ma réponse ici: Stackoverflow.com/a/13813535/804614 < / a>
Il y a toujours le wrapper GNU MP pour .NET tant que cela ne vous dérange pas d'utiliser le GMP . P>
Le lien semble mort.
Étant donné que aucun des doublons proposés ne répond réellement à la question, je vote de rouvrir. Les autres réponses sont simplement d'utiliser
décimal code>,
biginteger code> ou les bibliothèques J #.
La bibliothèque J # Runtime est une bibliothèque de décimales de précision arbitraires dans n'importe quelle langue .NET, C # incluse.