Double après virgule

Résolu
sami190 Messages postés 1 Statut Membre -  
 sami190 -
bonjour,

comment utiliser 5 chiffre après la virgule dans un double /

0.78555555555555555555555 ----> 0.78555 pour faire les calcule

mon problème :

1.0308346562423834E-56 / 1.3141426781290985E-51 == 7.844160861664951E-6

normalement 0.7844160861664951E-6 --> j'ai besoin juste 0.78441

Merci.

2 réponses

  1. ElementW Messages postés 5690 Statut Contributeur 1 293
     
    'lut
    System.out.println(String.format("%.5f", maValeur));

    from human import idiocy
    del idiocy
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Bonjour,

      Pour info on peut faire exactement la même chose comme ceci :

      System.out.printf("%.5f", maValeur);

      Cependant, ça c'est pour faire de l'affichage, si on veut limiter le nombre de décimal pendant les calculs il faudra plutôt utiliser des BigDecimal.

      MathContext mc = new MathContext(5);
      
      BigDecimal b1 = new BigDecimal(0.78555555555555555555555, mc);
      System.out.println(b1); // 0.78556
      
      BigDecimal b2 = new BigDecimal(1.0308346562423834E-56, mc);
      System.out.println(b2); // 1.0308E-56
      
      BigDecimal b3 = new BigDecimal(1.3141426781290985E-51, mc);
      System.out.println(b3); // 1.3141E-51
      
      BigDecimal b4 = b2.divide(b3, mc);
      System.out.println(b4); // 0.0000078442
      0
    2. ElementW Messages postés 5690 Statut Contributeur 1 293
       
      J'ai préféré mettre le
      format
      à part si par ex. il comptait enregistrer le float formaté dans une variable String, pour éventuellement faire du traitement dessus.
      Mais oui,
      System.out.printf
      c'est plus court.
      0
    3. sami190
       
      Merci gravgun ,
      Merci beaucoup m'avez montré la solution
      0
  2. sami190
     
    Merci
    mais comment fais ça /
    mon valeur = 0.75555 au lieu de 7.844160861664951E-6

    mon code

    double Prob,SProb;
    ...
    ... des opérations mathématique
    ...
    Prob=Prob/SProb;
    // Prob=1.0308346562423834E-56
    // SProb=1.3141426781290985E-51
    System.out.Println("la probabilité ="+Prob);

    le résultats : la probabilité = 7.844160861664951E-6

    au lieu de 0.7844160861664951E-6

    ci pas l'affichage ci le contenu de Mon Valeur pour faire des outres Opérations
    et encore Merci;
    0