Ander

Mac [Java] double kan niet worden verwijderd

NS

DaveTaylor

originele poster
6 november 2007
Aberdeenshire, Schotland
  • 25 januari 2010
Code: |_+_|
Helpen? lol

iShater

13 aug. 2002


Chicagoland
  • 25 januari 2010
Kun je de daadwerkelijke fout posten? Waarom staat uw retourverklaring voor het einde van uw methode? S

stanl8

24 december 2009
Manchester, VK
  • 25 januari 2010
Allereerst moet je proberen
terug ('' + BMI);
Dat wil zeggen dat de operator '+' de aaneenschakeling uitvoert.

Ten tweede begrijp ik niet wanneer die if-statements ooit zullen worden uitgevoerd, omdat je hierboven een return-statement hebt dat altijd zal worden uitgevoerd NS

DaveTaylor

originele poster
6 november 2007
Aberdeenshire, Schotland
  • 25 januari 2010
iShater zei: Kun je de daadwerkelijke fout posten? Waarom staat uw aangifte vóór het einde van uw methode? Klik om uit te breiden...

De werkelijke fout is dubbel en kan niet worden verwijderd.

Cromulente

2 okt 2006
Het land van hoop en glorie
  • 25 januari 2010
Allereerst keer je terug voordat je op je if.. else-statements drukt, wat betekent dat ze nooit zullen worden gebeld.

Ten tweede retourneert je methode een double, maar je probeert een string terug te geven in je if.. else-instructies.

Ten derde moet je bij het aanroepen van de methode toString() het object Double gebruiken in plaats van het primitieve type. U moet de BMI dus aangeven als een Double (java.lang.Double) in plaats van een dubbele.

Hier is een eenvoudig voorbeeld:

Code: |_+_|

chown33

Moderator
Medewerker
9 augustus 2009
het bodemloze vlak
  • 25 januari 2010
DaveTaylor zei: De werkelijke fout is dubbel en kan niet worden verwijderd. Klik om uit te breiden...

Ten eerste kun je dit niet doen:
Code: |_+_|
omdat BMI wordt verklaard als dubbele , het primitieve type. Java voert in deze situatie geen autoboxing uit, als ik me goed herinner.

Als BMI werd verklaard als Dubbele , de wrapper-klasse voor het primitieve type, dan zou het kunnen werken...

Behalve dat je dit niet kunt doen:
Code: |_+_|
omdat Java niet automatisch ()'s voor je toevoegt. Als je de methode toString op een object wilt aanroepen, moet je het als methodeaanroep schrijven:
Code: |_+_|
Als je geen tutorial of een boek gebruikt, zou je dat echt moeten doen.

lee1210

10 januari 2005
Dallas, Texas
  • 25 januari 2010
Ik wilde alleen maar toevoegen aan de goede observaties die tot nu toe zijn gedaan door het gebruik van de methode valueOf(double) van java.lang.String voor te stellen. Je kunt dit uitvoeren en een String terugkrijgen. Het gebruik van de String + double-operator werkt ook prima, maar is niet nodig als u alleen de String-representatie van een double wilt.

-Lezen C

cx300

12 sep. 2008
Clermont, Florida
  • 25 januari 2010
Mijn java is een beetje roestig, maar dit zou moeten kloppen...

Code: |_+_|

chown33

Moderator
Medewerker
9 augustus 2009
het bodemloze vlak
  • 25 januari 2010
cx300 zei: Mijn Java is een beetje roestig, maar dit zou moeten kloppen...

Code: |_+_| Klik om uit te breiden...

Wanneer de berekening (gewicht/(massa * massa)) is zonder andere coëfficiënten, zijn de eenheden voor lengte meters en eenheden voor massa (gewicht) kilogram. Als hoogte alleen gehele meters (1, 2, 3) kan aannemen, heb je een serieus precisieprobleem.

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

Deze typen zullen ook nooit een fractionele waarde in het resultaat produceren, omdat de berekening volledig wordt uitgevoerd in gehele rekenkunde (d.w.z. afkappende delen), waarna het gehele resultaat wordt omgezet in verdubbelen. Als u een dubbele berekening wilt met de mogelijkheid van een fractioneel deel, moet minimaal één operand van het type double zijn.

Ik denk niet dat dit probleem uniek is voor Java. Je zou vergelijkbare problemen hebben in C, die vergelijkbare regels heeft voor gehele en dubbele rekenkunde.