DaveTaylor
Originalni plakat- 6. november 2007
- Aberdeenshire, Škotska
- 25. januar 2010
Pomoč? lol
iShater
- 13. avgust 2002
- Chicagoland
- 25. januar 2010
stanl8
- 24. december 2009
- Manchester, Združeno kraljestvo
- 25. januar 2010
vrnitev ('' + BMI);
To pomeni, da bo operater '+' izvedel povezovanje.
Drugič, ne razumem, kdaj se bodo ti stavki if sploh izvajali, ker imate zgoraj stavek return, ki se bo vedno izvajal D
DaveTaylor
Originalni plakat- 6. november 2007
- Aberdeenshire, Škotska
- 25. januar 2010
iShater je rekel: Ali lahko objavite dejansko napako? Zakaj je vaša povratna izjava pred koncem vaše metode? Kliknite za razširitev ...
Dejanske napake je dvojna, ni mogoče dereferencirati.
Cromulent
- 2. oktober 2006
- Dežela upanja in slave
- 25. januar 2010
Drugič, vaša metoda vrne dvojno, vendar poskušate vrniti niz v svojih izjavah if.. else.
Tretjič, ko kličete metodo toString(), morate namesto primitivnega tipa uporabiti objekt Double. Zato bi morali ITM deklarirati kot dvojno (java.lang.Double) in ne dvojno.
Tukaj je preprost primer:
Koda: |_+_|
chown33
Moderator
Osebje- 9. avgust 2009
- Abysmal Plane
- 25. januar 2010
DaveTaylor je rekel: Dejanske napake je dvojna, ni mogoče dereferencirati. Kliknite za razširitev ...
Prvič, tega ne morete storiti:
Koda: |_+_|
ker je ITM deklariran kot dvojno , primitivni tip. Kot se spomnim, Java v tej situaciji ne izvaja samodejnega boksanja.
Če bi bil BMI deklariran kot Dvojni , razred ovoja za primitivni tip, potem bo morda delovalo ...
Razen tega ne morete storiti:
Koda: |_+_|
ker Java ne dodaja samodejno () namesto vas. Če želite na objektu priklicati metodo toString, jo morate napisati kot klic metode:
Koda: |_+_|
Če ne uporabljate vadnice ali knjige, bi res morali biti.
lee1210
- 10. januar 2005
- Dallas, TX
- 25. januar 2010
-Preberi C
cx300
- 12. september 2008
- Clermont, FL
- 25. januar 2010
Koda: |_+_|
chown33
Moderator
Osebje- 9. avgust 2009
- Abysmal Plane
- 25. januar 2010
cx300 je rekel: Moja java je malo zarjavela, ampak to bi moralo biti prav...
Koda: |_+_| Kliknite za razširitev ...
Ko je izračun (teža/(masa * masa)) brez drugih koeficientov, so enote za višino metri, enote za maso (teža) pa kilogrami. Če lahko višina prevzame le cele metre (1, 2, 3), imate resen problem z natančnostjo.
http://en.wikipedia.org/wiki/Indeks_telesne_mase
Prav tako te vrste nikoli ne bodo ustvarile nobene ulomne vrednosti v rezultatu, ker se izračun izvede v celoti v celoštevilski aritmetiki (tj. skrajšano deljenje), nato se celoštevilski rezultat pretvori v dvojni. Če želite dvojni izračun z možnostjo delnega dela, mora biti vsaj en operand tipa double.
Mislim, da ta problem ni edinstven za Javo. Podobne težave bi imeli v C, ki ima podobna pravila za celoštevilsko in dvojno aritmetiko.
Priljubljene Objave