Java limiter les nombre après la virgule

Fermé
muntu - 20 oct. 2009 à 05:34
 abrouch - 22 déc. 2009 à 15:26
Bonjour,

SVP, je suis débutant en java, est ce que quelqu'un peut bien m'expliquer ce fait cette instrution %.10e ? au fait je sais que je fixe le 10 chiffres après la virgule, mais je comprend pas pourquoi il faut mettre le e après 10 ? et le % veut signifier quoi ? et qd j'essais d'utiliser la fonction df(format) il n'affiche pas le resultat.
A voir également:

3 réponses

Utilisateur anonyme
20 oct. 2009 à 09:21
Salut,

Ce serait bien si tu nous montrais ton code (la partie qui ne fonctionne pas) ce serait bien.

Mais en attendant tu peux tester ce code:

// avec arrondi d'un nombre à 10 décimales:
         System.out.println("\nVERSION AVEC ARRONDI:");
         //double dNombre = 0.45657;
         double dNombre = 0.4567890123;
         System.out.println("Le nombre (double) avant arrondi: " + dNombre);
         String masque = new String("#0.##"); // le point est obligatoire (#0.##)
         DecimalFormat form = new DecimalFormat(masque);  // import java.text.DecimalFormat;
         System.out.println("dNombre arrondi: " + form.format(dNombre));
         
// sans arrondi de ce nombre:
         System.out.println("\nVERSION SANS ARRONDI (troncature):");
         String sNombre = Double.toString(dNombre);
         System.out.println("sNombre: " + sNombre);
         int index = sNombre.indexOf(".");
         if (index != -1)
         {
            String sNombreTronque = sNombre.substring(0, index +3);
            System.out.println("sNombreTronque: " + sNombreTronque + "  (String)");
            double result = Double.parseDouble(sNombreTronque);
            System.out.println("Resultat: " + result +"  (double)");
         }
         else
            System.out.println("Pas de .");
      	// ne pas oublier de gerer les exceptions


Cordialement,

Dan
-2
Merci bien votre code m'a bien servit...
0
Merci,

mais mon code c'est :


import java.math.*;

public class Trapeze {

static double f(double x)
{
return Math.sqrt(x);

}




/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub




int i,n;
double s,t=0,x;
double a,b,h;

Scanner sc = new Scanner(System.in);


System.out.println(" Entrer la valeur de borne inferieure SVP !");

a = sc.nextDouble();

System.out.println("Entrer la valeur de borne superieure SVP !");

b = sc.nextDouble();


while(a>b){


System.out.println("la borne inferieure ne peut pas être superieure à la borne superieure !");

System.out.println("Entrer la valeur de borne inferieure SVP !");

a = sc.nextDouble();

System.out.println("Entrer la valeur de borne superieure SVP !");

b = sc.nextDouble();



}
n=10; /* Nombre d'itération */

h=(b-a)/n;
s=f(a)+f(b);

for (i=0;i<=n-1;i++)
{
x=a+i*h;
s=s+2*f(x);
t=s*h/2;



}

System.out.printf("Intégrale f(x)dx entre [a,b] est = %.5e",t);

}

} et qd j fais c k tu me dis il n'affiche rien par contre ici, il affiche le resultat. Mais j'aimerai bien comprendre alors cette instruction %.5e, son rôle c'est quoi ?
-2
Utilisateur anonyme
20 oct. 2009 à 20:17
Je te conseille de consulter la classe Math de la javaDoc:

https://docs.oracle.com/javase/6/docs/api/ et cliquer sur Math dans la fenêtre All Classes

et peut-être aussi

https://fr.wikipedia.org/wiki/Calcul_int%C3%A9gral

Ou tout simplement avec Google de rechercher >>>> calcul integral en java

Concernant la demande correspondant au titre de ton message, il suffit (peut-être) que tu ajoutes dérrière
System.out.printf("Intégrale f(x)dx entre [a,b] est = %.5e",t);

ces quelques lignes:

         System.out.println("\n\nVERSION AVEC ARRONDI:");
         double dNombre = t;
         System.out.println("Le nombre (double) avant arrondi: " + dNombre);
         String masque = new String("#0.##");
         DecimalFormat form = new DecimalFormat(masque);  // import java.text.DecimalFormat;
         System.out.println("dNombre arrondi: " + form.format(dNombre));


Cordialement,

Dan
-2