Grande précision de nombre

Résolu/Fermé
pierre72210 Messages postés 67 Date d'inscription mercredi 16 mai 2012 Statut Membre Dernière intervention 13 décembre 2014 - 27 juin 2014 à 23:49
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 4 juil. 2014 à 19:24
Bonjour

je suis actuellement en train de crée un petit programme mais ma calculatrice, algobox et libre office ne sont pas suffisamment précis pour mes calcul !!
je cherche donc a langage ou une solution pour pouvoir faire des calcul plus précis

Merci d'avance

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
Modifié par KX le 28/06/2014 à 00:06
Bonsoir,

Tous les langages un peu sérieux gèrent les grands nombres, soit nativement (ex: BigInteger en Java) soit avec des bibliothèques en plus (ex: GMP en C).
La confiance n'exclut pas le contrôle
1
pierre72210 Messages postés 67 Date d'inscription mercredi 16 mai 2012 Statut Membre Dernière intervention 13 décembre 2014
4 juil. 2014 à 17:36
j'ai essayer java est C++ mais il y a forcement un moment ou la variable arrondie
a moins que je me sois tromper quelque part
mon programme doit diviser 1 par 2 puis par 2 ect... au moin 100 fois
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
4 juil. 2014 à 19:24
En Java par exemple.

Vu que tu as des valeurs décimales ce ne sera pas BigInteger, mais BigDecimal :

package test;

import java.math.BigDecimal;

public class Test
{
    public static void main(String[] args)
    {
        BigDecimal TWO = BigDecimal.valueOf(2);
        
        BigDecimal result = BigDecimal.ONE;

        for (int i = 0; i < 100; i++ )
            result = result.divide(TWO);
        
        System.out.println(result); // résultat exact
    }
}

Le résultat est exact par défaut, cela peut cependant poser problème si tu calcules des nombres non décimaux (par exemple une division par 3) dans ce cas il faudra imposer la précision (aussi grande que souhaitée, mais pas infinie), ou alors faire des calculs de nombres rationnels avec deux BigInteger (un pour le numérateur, un autre pour le dénominateur).
0