DaveTaylor
Originaalplakat- 6. november 2007
- Aberdeenshire, Šotimaa
- 25. jaanuar 2010
Abi? lol
iShater
- 13. august 2002
- Chicagoland
- 25. jaanuar 2010
stanl8
- 24. detsember 2009
- Manchester, Ühendkuningriik
- 25. jaanuar 2010
tagasi ('' + KMI);
See tähendab, et operaator '+' teostab konkatenatsiooni.
Teiseks, ma ei saa aru, millal need if-laused kunagi käivituvad, kuna ülal on tagastuslause, mis käivitatakse alati D
DaveTaylor
Originaalplakat- 6. november 2007
- Aberdeenshire, Šotimaa
- 25. jaanuar 2010
iShater ütles: kas saate postitada tegeliku vea? Miks on teie tagastusavaldus enne teie meetodi lõppu? Klõpsake laiendamiseks...
Tegelik viga on kahekordne, seda ei saa viiteid tühistada.
Kromulentne
- 2. oktoober 2006
- Lootuse ja hiilguse maa
- 25. jaanuar 2010
Teiseks tagastab teie meetod kahekordse, kuid proovite anda stringi if.. else lausetes.
Kolmandaks tuleb meetodi toString() kutsumisel kasutada primitiivse tüübi asemel objekti Double. Seega peaksite deklareerima KMI kahekordseks (java.lang.Double), mitte kahekordseks.
Siin on lihtne näide:
Kood: |_+_|
chown33
Moderaator
Töötaja- 9. august 2009
- Kuristiku lennuk
- 25. jaanuar 2010
DaveTaylor ütles: Tegelikku viga on topelt, seda ei saa viidata. Klõpsake laiendamiseks...
Esiteks ei saa te seda teha:
Kood: |_+_|
sest KMI on deklareeritud kui kahekordne , primitiivne tüüp. Minu mäletamist mööda Java selles olukorras autoboxi ei teosta.
Kui KMI oleks deklareeritud kui Kahekordne , primitiivse tüübi ümbrisklass, siis võib see toimida...
Välja arvatud see, et te ei saa seda teha:
Kood: |_+_|
sest Java ei lisa teie eest automaatselt ()-sid. Kui soovite käivitada objektil meetodi toString, peate selle kirjutama meetodi kutsena:
Kood: |_+_|
Kui te ei kasuta õpetust või raamatut, peaksite seda tõesti kasutama.
lee1210
- 10. jaanuar 2005
- Dallas, TX
- 25. jaanuar 2010
- Loe C
cx300
- 12. september 2008
- Clermont, FL
- 25. jaanuar 2010
Kood: |_+_|
chown33
Moderaator
Töötaja- 9. august 2009
- Kuristiku lennuk
- 25. jaanuar 2010
cx300 ütles: Minu Java on veidi roostes, kuid see peaks olema õige...
Kood: |_+_| Klõpsake laiendamiseks...
Kui arvutus on (kaal/(mass * mass)) ilma muude koefitsientideta, on kõrgusühikud meetrid ja massi (massi) ühikud kilogrammid. Kui kõrgus võib olla vaid täisarv meetrit (1, 2, 3), on teil tõsine täpsusprobleem.
http://en.wikipedia.org/wiki/Body_mass_index
Samuti ei anna need tüübid tulemuses kunagi murdarvu, kuna arvutamine toimub täielikult täisarvude aritmeetikas (st kärbitud jagamine), seejärel teisendatakse täisarv kahekordseks. Kui soovid topeltarvutust murdosa võimalusega, peab vähemalt üks operaand olema topelttüüpi.
Ma ei usu, et see probleem on ainult Java jaoks ainulaadne. Sarnased probleemid tekivad ka C-s, millel on sarnased täisarvu ja topeltaritmeetika reeglid.
Lemmik Postitused