Dave Taylor
Cartell original- 6 de novembre de 2007
- Aberdeenshire, Escòcia
- 25 de gener de 2010
Ajuda? lol
iShater
- 13 d'agost de 2002
- Chicagoland
- 25 de gener de 2010
stanl8
- 24 de desembre de 2009
- Manchester, Regne Unit
- 25 de gener de 2010
retorn ('' + IMC);
És a dir, l'operador '+' realitzarà la concatenació.
En segon lloc, no entenc quan s'executaran aquestes declaracions if perquè teniu una instrucció de retorn a sobre que sempre s'executarà D
Dave Taylor
Cartell original- 6 de novembre de 2007
- Aberdeenshire, Escòcia
- 25 de gener de 2010
iShater va dir: Pots publicar l'error real? Per què la vostra declaració de retorn és abans del final del vostre mètode? Feu clic per ampliar...
L'error real és doble no es pot desreferenciar.
Cromulent
- Oct 2, 2006
- La terra de l'esperança i la glòria
- 25 de gener de 2010
En segon lloc, el vostre mètode retorna un doble, però esteu intentant retornar una cadena a les vostres declaracions if.. else.
En tercer lloc, quan crideu al mètode toString() heu d'utilitzar l'objecte Double en lloc del tipus primitiu. Per tant, hauríeu de declarar l'IMC com a Doble (java.lang.Double) en lloc de doble.
Aquí teniu un exemple senzill:
Codi: |_+_|
chown33
Moderador
Membre del personal- 9 d'agost de 2009
- el pla abismal
- 25 de gener de 2010
DaveTaylor va dir: L'error real és doble no es pot desreferenciar. Feu clic per ampliar...
Primer, no pots fer això:
Codi: |_+_|
perquè l'IMC es declara com doble , el tipus primitiu. Java no realitza autoboxing en aquesta situació, tal com recordo.
Si l'IMC es declarés com Doble , la classe d'embolcall per al tipus primitiu, llavors podria funcionar...
Excepte que no pots fer això:
Codi: |_+_|
perquè Java no afegeix automàticament () per a vostè. Si voleu invocar el mètode toString en un objecte, heu d'escriure-lo com a invocació de mètode:
Codi: |_+_|
Si no feu servir un tutorial o un llibre, realment hauríeu de fer-ho.
lee1210
- 10 de gener de 2005
- Dallas, TX
- 25 de gener de 2010
-Llegeix C
cx300
- set 12, 2008
- Clermont, FL
- 25 de gener de 2010
Codi: |_+_|
chown33
Moderador
Membre del personal- 9 d'agost de 2009
- el pla abismal
- 25 de gener de 2010
cx300 va dir: El meu Java està una mica rovellat, però això hauria de ser correcte...
Codi: |_+_| Feu clic per ampliar...
Quan el càlcul és (pes/(massa * massa)) sense cap altre coeficient, les unitats d'alçada són metres i les unitats de massa (pes) són quilograms. Si l'alçada només pot prendre metres sencers (1, 2, 3), teniu un greu problema de precisió.
http://en.wikipedia.org/wiki/Body_mass_index
A més, aquests tipus mai no produiran cap valor fraccionari en el resultat, perquè el càlcul es realitza completament en aritmètica entera (és a dir, divisió truncada), llavors el resultat sencer es converteix en doble. Si es vol un càlcul doble amb possibilitat de part fraccionària, almenys un operand ha de ser del tipus double.
No crec que aquest problema sigui exclusiu de Java. Tindríeu problemes similars en C, que té regles similars per a l'aritmètica enter i doble.
Entrades Populars