DaveTaylor
Alkuperäinen juliste- 6. marraskuuta 2007
- Aberdeenshire, Skotlanti
- 25. tammikuuta 2010
Auta? LOL
iShater
- 13. elokuuta 2002
- Chicagoland
- 25. tammikuuta 2010
stanl8
- 24. joulukuuta 2009
- Manchester, Iso-Britannia
- 25. tammikuuta 2010
paluu ('' + BMI);
Toisin sanoen '+'-operaattori suorittaa ketjutuksen.
Toiseksi, en ymmärrä milloin nuo if-lauseet koskaan suoritetaan, koska sinulla on yläpuolella return-lause, joka suoritetaan aina D
DaveTaylor
Alkuperäinen juliste- 6. marraskuuta 2007
- Aberdeenshire, Skotlanti
- 25. tammikuuta 2010
iShater sanoi: Voitko lähettää todellisen virheen? Miksi palautuslausekkeesi on ennen menetelmäsi loppua? Laajenna napsauttamalla...
Todellinen virhe on kaksinkertainen, eikä siihen voida vedota.
Kromulentti
- 2. lokakuuta 2006
- Toivon ja kunnian maa
- 25. tammikuuta 2010
Toiseksi menetelmäsi palauttaa tuplaarvon, mutta yrität palauttaa merkkijonon if.. else -lauseissasi.
Kolmanneksi toString()-metodia kutsuttaessa on käytettävä objektia Double primitiivityypin sijaan. Joten sinun pitäisi ilmoittaa BMI:ksi Double (java.lang.Double) eikä tuplaa.
Tässä on yksinkertainen esimerkki:
Koodi: |_+_|
chown33
Moderaattori
Henkilökunnan jäsen- 9. elokuuta 2009
- Abysmal Plane
- 25. tammikuuta 2010
DaveTaylor sanoi: Todellinen virhe on kaksinkertainen, ei voida poistaa viittausta. Laajenna napsauttamalla...
Ensinnäkin et voi tehdä tätä:
Koodi: |_+_|
koska BMI on ilmoitettu kaksinkertainen , primitiivinen tyyppi. Java ei muistaakseni suorita autoboxia tässä tilanteessa.
Jos BMI olisi ilmoitettu Kaksinkertainen , primitiivityypin kääreluokka, niin se saattaa toimia...
Paitsi että et voi tehdä tätä:
Koodi: |_+_|
koska Java ei lisää automaattisesti ()-merkkejä puolestasi. Jos haluat kutsua toString-metodia objektiin, sinun on kirjoitettava se metodikutsuna:
Koodi: |_+_|
Jos et käytä opetusohjelmaa tai kirjaa, sinun pitäisi todella olla.
lee1210
- 10. tammikuuta 2005
- Dallas, TX
- 25. tammikuuta 2010
-Lukea C
cx300
- 12. syyskuuta 2008
- Clermont, FL
- 25. tammikuuta 2010
Koodi: |_+_|
chown33
Moderaattori
Henkilökunnan jäsen- 9. elokuuta 2009
- Abysmal Plane
- 25. tammikuuta 2010
cx300 sanoi: Javani on hieman ruosteinen, mutta tämän pitäisi olla oikein...
Koodi: |_+_| Laajenna napsauttamalla...
Kun laskenta on (paino/(massa * massa)) ilman muita kertoimia, korkeusyksiköt ovat metrejä ja massan (paino) yksiköt kilogrammoja. Jos korkeus voi olla vain kokonaislukumetrejä (1, 2, 3), sinulla on vakava tarkkuusongelma.
http://en.wikipedia.org/wiki/Body_mass_index
Nämä tyypit eivät myöskään koskaan tuota tulokseen murto-osaa, koska laskenta suoritetaan kokonaan kokonaislukuaritmetiikassa (eli katkaisujaolla), jolloin kokonaislukutulos muunnetaan kaksinkertaiseksi. Jos haluat kaksoislaskennan murto-osan mahdollisuudella, vähintään yhden operandin on oltava tyyppiä double.
En usko, että tämä ongelma on ainutlaatuinen Java. Sinulla olisi samanlaisia ongelmia C:ssä, jolla on samanlaiset säännöt kokonaisluvuille ja kaksoisaritmetiikalle.
Suosittu Viestiä