Προς το περιεχόμενο

Απορια στην Java.


Bill123

Προτεινόμενες αναρτήσεις

Δημοσ.

>import java.util.*;

public class Devide
{
public static void main(String[] arguments){
int x = 0,y = 0;
float z;

Scanner in = new Scanner(System.in);

try{
    System.out.println("Please insert the 1st Integer for the Devide:");
    x=in.nextInt();
    
}
catch(NumberFormatException e1){
     System.out.println("Error: You insert a String.Please insert an interger.");
}

try{
   System.out.println("Please insert the 2nd Integer for the  devide:");
   y=in.nextInt();
   }
catch(NumberFormatException e2){
    System.out.println("Error: You insert a String. Please insert an interger.");
    }

in.close();

try{
if(y==0)
{
throw new ArithmeticException();
}
else {
z=x/y;
System.out.println("The result of the devide is: "+ z);
}
}
catch(ArithmeticException e){

 System.out.println("You can't devide by zero.");

}
}
}

 

Γεια σας! Εχω φτιαξει αυτο το προγραμμα στην Java και θα ηθελα αν γινεται να εκτυπωνεται το μηνυμα απο το NumberFormatException καθως και να εμφανιζονται περισσοτερα ψηφια στο z αφου εκτελεστει η διαιρεση. Καμια ιδεα; Ευχαριστω! :)

Δημοσ.

>
catch(NumberFormatException e2)
{
    System.out.println("Error: You insert a String. Please insert an interger.");
    System.out.println(e2.toString());
}

όσο για περισσότερα ψηφία, κάνε το double νομίζω θα διορθωθεί το πρόβλημά σου..

Δημοσ.

μπορεις βεβαια να τα κανεις και long....νομιζω υπαρχει αυτη η δυνατοτητα..και θα εισαι καλυμμενος....

Δημοσ.

>
catch(NumberFormatException e2)
{
    System.out.println("Error: You insert a String. Please insert an interger.");
    System.out.println(e2.toString());
}

όσο για περισσότερα ψηφία, κάνε το double νομίζω θα διορθωθεί το πρόβλημά σου..

 

Το αντικατέστησα, αλλά και πάλι. Δεν εμφανίζει το μηνυμα.

Μόνο αυτό:

>Please insert the 1st Integer for the devide:
sf
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:857)
at java.util.Scanner.next(Scanner.java:1478)
at java.util.Scanner.nextInt(Scanner.java:2108)
at java.util.Scanner.nextInt(Scanner.java:2067)
at Devide.main(Devide.java:13)

 

Δεν γίνεται με int να έχω μεγαλύτερη ακρίβεια στο float;

Δημοσ.

Αν θέλεις να χρησιμοποιήσεις και strings, τότε διάβασε τα inputs σαν String και μετά κάνε τα convert σε αριθμό.

 

>
String xx, yy;
float x, y;
...

try{
   System.out.println("Please insert the 2nd Integer for the  devide:");
   yy=in.nextLine();
   y = Float.parseFloat(yy);
   }
catch(NumberFormatException e2){
    System.out.println("Error: You insert a String. Please insert an interger.");
    }

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...