IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Fahrenheit - Celsius conversion


Sujet :

avec Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Fahrenheit - Celsius conversion
    Salut tout le monde,
    je suis présentement entrain de reviser mes codes en Java et je suis un peu bloqué au niveau de la compréhension d'un élement nommé "epsilon", que pourrai être le role de cet "epsilon"?

    Merci de m'éclairer!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    import java.util.Scanner;
     
    public class  Celsius {
     
    	public static void main(String[] args) {
     
    		//  Variables
    		double epsilon = 0.005;
    		double c = 0.0, f;
     
    		Scanner in = new Scanner(System.in);
     
    		// Calcul
    		do {
    			System.out.println("Le programme finis avec 0");
    			System.out.println("Celsius-Temperatur: ");
    			// Celsius
    			c = in.nextDouble();
    			// Fahrenheit
    			f = c * 9.0/5.0 + 32.0;
    			// Résultat
    			System.out.println("... Fahrenheit: " + f + " Grad \n");
    		} while (Math.abs(c) > epsilon);
     
    		System.out.println("... aurevoir!");
    		in.close();
    	}
    }

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Le rôle de epsilon c'est d'être petit, proche de zéro.
    La personne qui a fait ce programme a bien retenu ce qui lui a été dit : "on ne compare jamais des flottants pour égalité stricte, parce que tout calcul flottant est un calcul approché, et l'ensemble des valeurs possibles étant symboliquement infini, la probabilité que deux flottants soient égaux est symboliquement nulle."

    Donc, comme son programme se termine avec zéro, que le nombre est lu comme flottant, et qu'il ne peut pas chercher l'égalité stricte avec zéro, il vérifie juste si le nombre est très petit, proche de zéro, et suppose que si oui, l'utilisateur a bien tapé zéro.

    Mais c'est inutile. Le zéro est représentable exactement avec les flottants, ce qui fait que quand on essaie de le lire, c'est un calcul exact et pas approché. Il suffisait de comparer avec zéro, ça marche parfaitement.

    Mieux : il suffisait de lire une chaîne d'abord. Si la chaîne est "stop", s'arrêter. Sinon, parser la chaîne comme un flottant. C'est tout de même plus logique -_-°.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Convertisseur Celsius-Fahrenheit simple
    Par screamlets dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 03/12/2014, 08h47
  2. Réponses: 2
    Dernier message: 23/07/2014, 22h19
  3. Application conversion Celsius / Fahrenheit
    Par Chocolatine_ dans le forum Android
    Réponses: 2
    Dernier message: 28/01/2013, 13h10
  4. Réponses: 2
    Dernier message: 05/06/2002, 12h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo