Existe-il des bibliothèques pour la Racine Carrée de plus de BigDecimal?

Existe-il des bibliothèques pour la Racine Carrée de plus de BigDecimal en Java?

  • Je me demande, pourquoi avez-vous besoin pour calculer des racines carrées d'un BigDecimal? Double a trop petite de gamme?
  • Pour la même raison que quelqu'un utilise BigDecimal: double manque de précision.
  • Daniel, mais aussi le calcul de la racine carrée. Vous ne pouvez pas calculer sqrt(2) avec une précision infinie. Utilisant la méthode de Newton pour calculer la racine carrée introduit une erreur de son propre, inhérente à l'algorithme.
  • Tre, pas de. Double un BigDecimal sont foncièrement différents. "Double précision" dépend du nombre que vous représentez. Certains sont tout simplement impossible à représenter dans toute précision. Avec BigDecimal la précision peut être fixé arbitrairement, et, à l'intérieur de cette précision, vous pouvez représenter n'importe quel nombre fractionnaire.
  • De tels chiffres 1/3 ne peut pas être représenté 100% précisément dans la base décimale sans l'aide d'un nombre infini de chiffres. Ce qui est plus, les nombres comme sqrt(2) ne peut être représenté dans toute la base, sans l'aide d'un nombre infini de chiffres. Cette mathématique est un fait. Comme pour le calcul de racines carrées, à l'aide de la méthode de Newton vous donne une autre source d'imprécision. Comment savez-vous, à l'aide de la méthode de Newton, que les N premiers chiffres de votre calculée racine carrée sont corrects? Il y a des méthodes pour cela, mais la méthode de Newton n'est pas l'un d'eux: en.wikipedia.org/wiki/Methods_of_computing_square_roots
  • "Un peu d'apprentissage est une chose dangereuse; trinque, le goût ou ne pas le Pierian printemps: il y a peu profonde de courants d'air, intoxiquent le cerveau, et de boire en grande partie sobers nous."
  • êtes-vous une erreur de lecture sur le but? Avec BigDecimal je peux contrôler la précision, avec un nombre à virgule flottante, je ne peux pas. Avec BigDecimal je peux dire catégoriquement que ma précision est, par exemple, 1 point décimal. Donc, essayez ceci, par exemple: 10000000000000000D + 0.1 D == 1E16 et me dire le résultat.
  • Daniel, vous êtes ignorant le contexte de la question: le calcul de la racine carrée. Pensez à la méthode de Newton calcule la racine carrée, et si le fait d'avoir une précision arbitraire peut vous aider à trouver le résultat avec une précision arbitraire.
  • Eh bien, si vous voulez critiquer la réponse, faites-le, ci-dessous la réponse. Ci-dessous la question que je suis le seul à discuter de la question.
  • Eh bien, mec, j'ai commenté la question dans mon premier commentaire, et puis vous sont venus et ont détourné le sujet.
  • Pas de hi-jacking. J'en ai besoin pour la même raison que quelqu'un utilise BigDecimal: Double manque de précision. BigDecimal me donne de la précision, je lui demande de, le Double n'a pas. Vous ensuite présenté une critique de la méthode de Newton, qui n'est pas pertinent pour la question. J'ai réfuté les déclarations restantes, et vous avez apporté à la méthode de Newton à nouveau. Eh bien, ne critiquer ci-dessous la réponse qui fait référence à la méthode de Newton, et de laisser la question du bien-ou apporter quelque chose de nouveau et de pertinent pour elle.
  • OK, donc, en utilisant BigDecimal, vous pouvez avoir plus de chiffres dans votre résultat final (la racine carrée). Avez-vous vérifier que ces chiffres ont aucun sens?