DaveTaylor
Eredeti plakát- 2007. november 6
- Aberdeenshire, Skócia
- 2010. január 25
Segítség? lol
iShater
- 2002. augusztus 13
- Chicagoland
- 2010. január 25
stanl8
- 2009. december 24
- Manchester, Egyesült Királyság
- 2010. január 25
return ('' + BMI);
Vagyis a '+' operátor hajtja végre az összefűzést.
Másodszor, nem értem, hogy ezek az if utasítások mikor fognak valaha végrehajtódni, mert van egy visszatérési utasításod, amely mindig végrehajtódik D
DaveTaylor
Eredeti plakát- 2007. november 6
- Aberdeenshire, Skócia
- 2010. január 25
iShater azt mondta: El tudod küldeni a tényleges hibát? Miért van a visszatérési nyilatkozatod a metódus vége előtt? Kattintson a kibontáshoz...
A tényleges hiba kétszeres, nem lehet hivatkozni.
Kromulent
- 2006. október 2
- A remény és a dicsőség földje
- 2010. január 25
Másodszor, a metódus egy double-t ad vissza, Ön azonban egy karakterláncot próbál visszaadni az if.. else utasításaiban.
Harmadszor, a toString() metódus meghívásakor a primitív típus helyett a Double objektumot kell használni. Tehát a BMI-t duplaként (java.lang.Double) kell deklarálnia, nem pedig duplaként.
Íme egy egyszerű példa:
Kód: |_+_|
chown33
Moderátor
Munkatárs- 2009. augusztus 9
- az Abysmal Plane
- 2010. január 25
DaveTaylor azt mondta: A tényleges hiba kétszeres, nem lehet hivatkozni. Kattintson a kibontáshoz...
Először is, ezt nem teheti meg:
Kód: |_+_|
mert a BMI-t úgy deklarálják kettős , a primitív típus. Emlékeim szerint a Java ebben a helyzetben nem hajt végre autoboxot.
Ha a BMI-t mint Kettős , a wrapper osztály a primitív típushoz, akkor működhet...
Kivéve, hogy ezt nem teheti meg:
Kód: |_+_|
mert a Java nem ad hozzá automatikusan ()-t helyetted. Ha egy objektumon szeretné meghívni a toString metódust, akkor metódushívásként kell megírnia:
Kód: |_+_|
Ha nem oktatóanyagot vagy könyvet használ, akkor valóban használnia kell.
lee1210
- 2005. január 10
- Dallas, TX
- 2010. január 25
-Olvas C
cx300
- 2008. szeptember 12
- Clermont, FL
- 2010. január 25
Kód: |_+_|
chown33
Moderátor
Munkatárs- 2009. augusztus 9
- az Abysmal Plane
- 2010. január 25
cx300 mondta: Kicsit rozsdás a javam, de ennek így kell lennie...
Kód: |_+_| Kattintson a kibontáshoz...
Ha a számítás (súly/(tömeg * tömeg)) más együttható nélkül, a magasság mértékegysége méter, a tömeg (tömeg) mértékegysége pedig kilogramm. Ha a magasság csak egész métert vehet fel (1, 2, 3), akkor komoly precíziós problémája van.
http://en.wikipedia.org/wiki/Body_mass_index
Ezen túlmenően ezek a típusok soha nem adnak tört értéket az eredményben, mivel a számítás teljes egészében aritmetikával történik (azaz csonka osztás), majd az egész eredményt duplává alakítjuk. Ha kettős számítást szeretne törtrész lehetőségével, akkor legalább egy operandusnak double típusúnak kell lennie.
Nem hiszem, hogy ez a probléma kizárólag a Java-ra vonatkozik. Hasonló problémák lennének a C-ben, amelynek hasonló szabályai vannak az egész számokra és a kettős aritmetikára.
Népszerű Bejegyzések