Java limiter les nombre après la virgule
muntu
-
abrouch -
abrouch -
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.
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.
Configuration: Windows Vista Firefox 3.0.14
3 réponses
-
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 -
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 ? -
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èreSystem.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