DaveTaylor
originele poster- 6 november 2007
- Aberdeenshire, Schotland
- 25 januari 2010
Helpen? lol
iShater
- 13 aug. 2002
- Chicagoland
- 25 januari 2010
stanl8
- 24 december 2009
- Manchester, VK
- 25 januari 2010
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
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
-Lezen C
cx300
- 12 sep. 2008
- Clermont, Florida
- 25 januari 2010
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.
Populaire Berichten