Ντέιβ Τέιλορ
Πρωτότυπη αφίσα- 6 Νοεμβρίου 2007
- Aberdeenshire, Σκωτία
- 25 Ιανουαρίου 2010
Βοήθεια? χαχαχα
iShater
- 13 Αυγούστου 2002
- Chicagoland
- 25 Ιανουαρίου 2010
stanl8
- 24 Δεκεμβρίου 2009
- Μάντσεστερ, Ηνωμένο Βασίλειο
- 25 Ιανουαρίου 2010
επιστροφή ('' + ΔΜΣ).
Δηλαδή, ο τελεστής '+' θα πραγματοποιήσει συνένωση.
Δεύτερον, δεν καταλαβαίνω πότε θα εκτελεστούν ποτέ αυτές οι εντολές if επειδή έχετε μια δήλωση επιστροφής παραπάνω που θα εκτελείται πάντα ρε
Ντέιβ Τέιλορ
Πρωτότυπη αφίσα- 6 Νοεμβρίου 2007
- Aberdeenshire, Σκωτία
- 25 Ιανουαρίου 2010
iShater είπε: Μπορείτε να δημοσιεύσετε το πραγματικό σφάλμα; Γιατί η δήλωση επιστροφής είναι πριν από το τέλος της μεθόδου σας; Κάντε κλικ για επέκταση...
Το πραγματικό σφάλμα είναι διπλό δεν μπορεί να αποαναφερθεί.
Cromulent
- 2 Οκτωβρίου 2006
- Η Χώρα της Ελπίδας και της Δόξας
- 25 Ιανουαρίου 2010
Δεύτερον, η μέθοδός σας επιστρέφει ένα διπλό αλλά προσπαθείτε να επιστρέψετε μια συμβολοσειρά στις δηλώσεις if.. else.
Τρίτον, όταν καλείτε τη μέθοδο toString() πρέπει να χρησιμοποιήσετε το αντικείμενο Double αντί τον πρωταρχικό τύπο. Επομένως, θα πρέπει να δηλώσετε το ΔΜΣ ως Διπλό (java.lang.Double) αντί για διπλό.
Εδώ είναι ένα απλό παράδειγμα:
Κωδικός: |_+_|
chown33
Μεσολαβητής
Μέλος του προσωπικού- 9 Αυγούστου 2009
- το αβυσσαλέο αεροπλάνο
- 25 Ιανουαρίου 2010
Ο DaveTaylor είπε: Το πραγματικό σφάλμα είναι διπλό δεν μπορεί να αποαναφερθεί. Κάντε κλικ για επέκταση...
Πρώτον, δεν μπορείτε να κάνετε αυτό:
Κωδικός: |_+_|
επειδή ο ΔΜΣ δηλώνεται ως διπλό , τον πρωτόγονο τύπο. Η Java δεν εκτελεί autoboxing σε αυτήν την περίπτωση, όπως θυμάμαι.
Εάν ο ΔΜΣ δηλώνονταν ως Διπλό , η κλάση περιτυλίγματος για τον πρωτόγονο τύπο, τότε μπορεί να λειτουργήσει...
Εκτός από το ότι δεν μπορείτε να το κάνετε αυτό:
Κωδικός: |_+_|
επειδή η Java δεν προσθέτει αυτόματα () για εσάς. Εάν θέλετε να καλέσετε τη μέθοδο toString σε ένα αντικείμενο, πρέπει να τη γράψετε ως επίκληση μεθόδου:
Κωδικός: |_+_|
Εάν δεν χρησιμοποιείτε ένα σεμινάριο ή ένα βιβλίο, θα έπρεπε πραγματικά να το χρησιμοποιείτε.
lee1210
- 10 Ιανουαρίου 2005
- Ντάλας, Τέξας
- 25 Ιανουαρίου 2010
-Ανάγνωση ντο
cx300
- 12 Σεπτεμβρίου 2008
- Clermont, FL
- 25 Ιανουαρίου 2010
Κωδικός: |_+_|
chown33
Μεσολαβητής
Μέλος του προσωπικού- 9 Αυγούστου 2009
- το αβυσσαλέο αεροπλάνο
- 25 Ιανουαρίου 2010
cx300 είπε: Η java μου είναι λίγο σκουριασμένη, αλλά αυτό πρέπει να είναι σωστό...
Κωδικός: |_+_| Κάντε κλικ για επέκταση...
Όταν ο υπολογισμός είναι (βάρος/(μάζα * μάζα)) χωρίς άλλους συντελεστές, οι μονάδες ύψους είναι μέτρα και οι μονάδες μάζας (βάρος) είναι χιλιόγραμμα. Εάν το ύψος μπορεί να πάρει μόνο ακέραια μέτρα (1, 2, 3), έχετε σοβαρό πρόβλημα ακρίβειας.
http://en.wikipedia.org/wiki/Body_mass_index
Επίσης, αυτοί οι τύποι δεν πρόκειται ποτέ να παράγουν καμία κλασματική τιμή στο αποτέλεσμα, επειδή ο υπολογισμός πραγματοποιείται εξ ολοκλήρου σε ακέραια αριθμητική (δηλαδή περικοπή διαίρεσης), και μετά το ακέραιο αποτέλεσμα μετατρέπεται σε διπλό. Εάν θέλετε διπλό υπολογισμό με δυνατότητα κλασματικού μέρους, τουλάχιστον ένας τελεστής πρέπει να είναι τύπου double.
Δεν νομίζω ότι αυτό το πρόβλημα είναι μοναδικό στην Java. Θα είχατε παρόμοια προβλήματα στο C, το οποίο έχει παρόμοιους κανόνες για ακέραιους και διπλούς αριθμούς.
Δημοφιλείς Αναρτήσεις