Bill123 Δημοσ. 7 Ιουνίου 2011 Δημοσ. 7 Ιουνίου 2011 >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 αφου εκτελεστει η διαιρεση. Καμια ιδεα; Ευχαριστω!
MeTaXaS4 Δημοσ. 7 Ιουνίου 2011 Δημοσ. 7 Ιουνίου 2011 > catch(NumberFormatException e2) { System.out.println("Error: You insert a String. Please insert an interger."); System.out.println(e2.toString()); } όσο για περισσότερα ψηφία, κάνε το double νομίζω θα διορθωθεί το πρόβλημά σου..
Γηρυόνης Δημοσ. 7 Ιουνίου 2011 Δημοσ. 7 Ιουνίου 2011 Κάνε το x ή το y (ή και τα δύο) float. Και άλλαξε και τη scanner να διαβάζει float: x=nextFloat();
geotrian Δημοσ. 7 Ιουνίου 2011 Δημοσ. 7 Ιουνίου 2011 μπορεις βεβαια να τα κανεις και long....νομιζω υπαρχει αυτη η δυνατοτητα..και θα εισαι καλυμμενος....
Γηρυόνης Δημοσ. 7 Ιουνίου 2011 Δημοσ. 7 Ιουνίου 2011 Το long δε θα παίξει, θα είναι σαν να χρησιμοποιεί int.
Bill123 Δημοσ. 7 Ιουνίου 2011 Μέλος Δημοσ. 7 Ιουνίου 2011 > 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;
Γηρυόνης Δημοσ. 7 Ιουνίου 2011 Δημοσ. 7 Ιουνίου 2011 Αν θέλεις να χρησιμοποιήσεις και 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."); }
Bill123 Δημοσ. 7 Ιουνίου 2011 Μέλος Δημοσ. 7 Ιουνίου 2011 Οκ! Ευχαριστώ πολύ! Για να τα κανω int αντιστοιχα ειναι y = Int.parseInt(yy);
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.