Partage
  • Partager sur Facebook
  • Partager sur Twitter

Multiplier un float par un float... erreur

Sujet résolu
Anonyme
    9 février 2009 à 16:33:57

    Bonjour !

    Alors voici ce que j'ai fait pour m'exercer un peu en Java:

    package test;
    
    import java.util.*;
    
    public class Main
    {
       public static void main(String[] args)
       {
          Scanner sc = new Scanner(System.in);
          System.out.println("Convertion OR/FER");
          System.out.println("Or vers Fer: 1");
          System.out.println("Fer vers Or: 2");
          System.out.print("Choix: ");
          byte c = sc.nextByte();
          float or, fer;
          if (c == 1)
          {
             System.out.print("Montant en fer: ");
             or = sc.nextFloat();
             System.out.println("Montant en or: " + (float)(or) / (float)(1.33));
          }
          else if (c == 2)
          {
             System.out.print("Montant en or: ");
             fer = sc.nextFloat();
             System.out.println("Montant en fer: " + (float)(fer) * (float)(1.33));
          }
       }
    }
    


    Et quand je rentre par exemple 12.7 dans le montant de fer (ou d'or) ça me sort ça:

    [florent@localhost ~]$ java -jar "/home/florent/Dev/Java/Test/dist/Test.jar"
    Convertion OR/FER
    Or vers Fer: 1
    Fer vers Or: 2
    Choix: 1
    Montant en fer: 12.7
    Exception in thread "main" java.util.InputMismatchException
            at java.util.Scanner.throwFor(Scanner.java:840)
            at java.util.Scanner.next(Scanner.java:1461)
            at java.util.Scanner.nextFloat(Scanner.java:2319)
            at test.Main.main(Main.java:19)

    Alors que si je saisi un entier ça ne plante pas...

    La question est simple... où est-je fait l'erreur ?? J'ai bien relu le cours de Java mais sans succès...
    • Partager sur Facebook
    • Partager sur Twitter
      9 février 2009 à 17:57:24

      Salut,

      http://www.siteduzero.com/forum-83-338 [...] html#r3139139

      Sauf qu'à fortiori chez toi et chez moi c'est l'inverse :
      import java.util.Scanner;
      
      public class Test {
          public static void main(String[] args) {
      
              Scanner sc = new Scanner(System.in);
      
              float f = sc.nextFloat();
      
              System.out.println(f);
          }
      }
      

      $ java Test
      12.3
      Exception in thread "main" java.util.InputMismatchException
              at java.util.Scanner.throwFor(Scanner.java:840)
              at java.util.Scanner.next(Scanner.java:1461)
              at java.util.Scanner.nextFloat(Scanner.java:2319)
              at Test.main(Test.java:8)
      $ java Test
      12,3
      12.3
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        9 février 2009 à 20:09:52

        Très étrange... bon ben tant pis... encore un post dans le vide quoi...

        Merci quand meme ;)
        • Partager sur Facebook
        • Partager sur Twitter

        Multiplier un float par un float... erreur

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown