DaveTaylor
Originalni poster- 6. studenog 2007
- Aberdeenshire, Škotska
- 25. siječnja 2010
Pomozite? lol
iShater
- 13. kolovoza 2002
- Chicagoland
- 25. siječnja 2010
stanl8
- 24. prosinca 2009
- Manchester, UK
- 25. siječnja 2010
povratak ('' + BMI);
Odnosno, operator '+' će izvesti konkatenaciju.
Drugo, ne razumijem kada će se ti if izrazi ikad izvršiti jer iznad imate naredbu return koja će se uvijek izvršiti D
DaveTaylor
Originalni poster- 6. studenog 2007
- Aberdeenshire, Škotska
- 25. siječnja 2010
iShater je rekao: Možete li objaviti stvarnu pogrešku? Zašto je vaša povratna izjava prije kraja vaše metode? Kliknite za proširenje...
Stvarna pogreška je dvostruka, ne može se dereferencirati.
Cromulent
- 2. listopada 2006
- Zemlja nade i slave
- 25. siječnja 2010
Drugo, vaša metoda vraća double, ali vi pokušavate vratiti niz u svojim if.. else izjavama.
Treće kada pozivate metodu toString() trebate koristiti objekt Double umjesto primitivnog tipa. Stoga biste trebali deklarirati BMI kao Double (java.lang.Double), a ne kao dupli.
Evo jednostavnog primjera:
Šifra: |_+_|
chown33
Moderator
Član osoblja- 9. kolovoza 2009
- Abysmal Plane
- 25. siječnja 2010
DaveTaylor je rekao: Stvarna pogreška je dvostruka, ne može se dereferencirati. Kliknite za proširenje...
Prvo, ne možete učiniti ovo:
Šifra: |_+_|
jer je BMI deklariran kao dvostruko , primitivni tip. Koliko se sjećam, Java ne izvodi autoboxing u ovoj situaciji.
Ako se BMI deklarira kao Dvostruko , klasa omotača za primitivni tip, onda bi moglo raditi...
Osim što ovo ne možete učiniti:
Šifra: |_+_|
jer Java ne dodaje automatski () umjesto vas. Ako želite pozvati metodu toString na objektu, morate je napisati kao pozivanje metode:
Šifra: |_+_|
Ako ne koristite vodič ili knjigu, doista biste trebali biti.
lee1210
- 10. siječnja 2005
- Dallas, TX
- 25. siječnja 2010
-Čitati C
cx300
- 12. rujna 2008
- Clermont, FL
- 25. siječnja 2010
Šifra: |_+_|
chown33
Moderator
Član osoblja- 9. kolovoza 2009
- Abysmal Plane
- 25. siječnja 2010
cx300 je rekao: Moja java je malo zahrđala, ali ovo bi trebalo biti ispravno...
Šifra: |_+_| Kliknite za proširenje...
Kada je izračun (težina/(masa * masa)) bez drugih koeficijenata, jedinice visine su metri, a jedinice mase (težine) kilogrami. Ako visina može uzeti samo cijeli broj metara (1, 2, 3), imate ozbiljan problem s preciznošću.
http://en.wikipedia.org/wiki/Body_mass_index
Također, ovi tipovi nikada neće proizvesti bilo kakvu razlomačku vrijednost u rezultatu, jer se izračun u potpunosti provodi u cjelobrojnoj aritmetici (tj. skraćujućim dijeljenjem), a zatim se cjelobrojni rezultat pretvara u dvostruki. Ako želite dvostruki izračun s mogućnošću razlomka, barem jedan operand mora biti tipa double.
Mislim da ovaj problem nije jedinstven za Javu. Imali biste slične probleme u C, koji ima slična pravila za cjelobrojnu i dvostruku aritmetiku.
Popularni Postovi