Αλλα

Δεν είναι δυνατή η κατάργηση της αναφοράς του διπλού Mac [Java]

ρε

Ντέιβ Τέιλορ

Πρωτότυπη αφίσα
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 που σημαίνει ότι δεν θα σας καλέσουν ποτέ.

Δεύτερον, η μέθοδός σας επιστρέφει ένα διπλό αλλά προσπαθείτε να επιστρέψετε μια συμβολοσειρά στις δηλώσεις if.. else.

Τρίτον, όταν καλείτε τη μέθοδο toString() πρέπει να χρησιμοποιήσετε το αντικείμενο Double αντί τον πρωταρχικό τύπο. Επομένως, θα πρέπει να δηλώσετε το ΔΜΣ ως Διπλό (java.lang.Double) αντί για διπλό.

Εδώ είναι ένα απλό παράδειγμα:

Κωδικός: |_+_|

chown33

Μεσολαβητής
Μέλος του προσωπικού
9 Αυγούστου 2009
το αβυσσαλέο αεροπλάνο
  • 25 Ιανουαρίου 2010
Ο DaveTaylor είπε: Το πραγματικό σφάλμα είναι διπλό δεν μπορεί να αποαναφερθεί. Κάντε κλικ για επέκταση...

Πρώτον, δεν μπορείτε να κάνετε αυτό:
Κωδικός: |_+_|
επειδή ο ΔΜΣ δηλώνεται ως διπλό , τον πρωτόγονο τύπο. Η Java δεν εκτελεί autoboxing σε αυτήν την περίπτωση, όπως θυμάμαι.

Εάν ο ΔΜΣ δηλώνονταν ως Διπλό , η κλάση περιτυλίγματος για τον πρωτόγονο τύπο, τότε μπορεί να λειτουργήσει...

Εκτός από το ότι δεν μπορείτε να το κάνετε αυτό:
Κωδικός: |_+_|
επειδή η Java δεν προσθέτει αυτόματα () για εσάς. Εάν θέλετε να καλέσετε τη μέθοδο toString σε ένα αντικείμενο, πρέπει να τη γράψετε ως επίκληση μεθόδου:
Κωδικός: |_+_|
Εάν δεν χρησιμοποιείτε ένα σεμινάριο ή ένα βιβλίο, θα έπρεπε πραγματικά να το χρησιμοποιείτε.

lee1210

10 Ιανουαρίου 2005
Ντάλας, Τέξας
  • 25 Ιανουαρίου 2010
Ήθελα απλώς να προσθέσω στις καλές παρατηρήσεις που έγιναν μέχρι τώρα προτείνοντας τη χρήση της μεθόδου valueOf(double) του java.lang.String. Μπορείτε να το εκτελέσετε και να πάρετε πίσω ένα String. Η χρήση του τελεστή String + double λειτουργεί επίσης καλά, αλλά δεν είναι απαραίτητη εάν το μόνο που θέλετε είναι η αναπαράσταση συμβολοσειράς ενός διπλού.

-Ανάγνωση ντο

cx300

12 Σεπτεμβρίου 2008
Clermont, FL
  • 25 Ιανουαρίου 2010
Η java μου είναι λίγο σκουριασμένη, αλλά αυτό πρέπει να είναι σωστό...

Κωδικός: |_+_|

chown33

Μεσολαβητής
Μέλος του προσωπικού
9 Αυγούστου 2009
το αβυσσαλέο αεροπλάνο
  • 25 Ιανουαρίου 2010
cx300 είπε: Η java μου είναι λίγο σκουριασμένη, αλλά αυτό πρέπει να είναι σωστό...

Κωδικός: |_+_| Κάντε κλικ για επέκταση...

Όταν ο υπολογισμός είναι (βάρος/(μάζα * μάζα)) χωρίς άλλους συντελεστές, οι μονάδες ύψους είναι μέτρα και οι μονάδες μάζας (βάρος) είναι χιλιόγραμμα. Εάν το ύψος μπορεί να πάρει μόνο ακέραια μέτρα (1, 2, 3), έχετε σοβαρό πρόβλημα ακρίβειας.

http://en.wikipedia.org/wiki/Body_mass_index

Επίσης, αυτοί οι τύποι δεν πρόκειται ποτέ να παράγουν καμία κλασματική τιμή στο αποτέλεσμα, επειδή ο υπολογισμός πραγματοποιείται εξ ολοκλήρου σε ακέραια αριθμητική (δηλαδή περικοπή διαίρεσης), και μετά το ακέραιο αποτέλεσμα μετατρέπεται σε διπλό. Εάν θέλετε διπλό υπολογισμό με δυνατότητα κλασματικού μέρους, τουλάχιστον ένας τελεστής πρέπει να είναι τύπου double.

Δεν νομίζω ότι αυτό το πρόβλημα είναι μοναδικό στην Java. Θα είχατε παρόμοια προβλήματα στο C, το οποίο έχει παρόμοιους κανόνες για ακέραιους και διπλούς αριθμούς.