Just nu i M3-nätverket
Gå till innehåll

avrunda double


Martin K

Rekommendera Poster

hej...

Jag är helt lost nu...... Jag håller på med en uträkning där jag värkligen behöver en avrundning på rätt sätt, precis som vanlig altså. 0,4 blir 0 och 0,5 blir 1, hur gör jag????????????????????????

Änvänder fler decimaler än en, det kan variera mellan 1 och 15 och jag jobbar också med helt olika tal: 0,8 45,9 13,2 osv. Jag vill avrunda till heltal så jag sedan kan göra om till integer utan att avrundningen blir helt fel.

Tilläggas ska också att jag arbetar med J2me, och det är alltså en applikation för mobiltelefoner.

 

Länk till kommentar
Dela på andra webbplatser

[log]Lite osäker på exakta beteendet hos dem, eller hur J2me fungerar men i Math finner du två versioner av Round().

En som tar och rundar av en double till en long och en som rundar av en long till en int.

 

Borde väl fungera bra för dig?

Om de nu finns i din version av JAVA, något jag inte vet om de gör.[/log]

 

Edit:

 

ässch glöm det ovan. Gömmer det mellan log-taggar så ingen ska se det. Det jag använder ovan finns väl inte i din version av JAVA?

Vet ärligt talat inget om J2me.

Men du kan ju alltid multiplicera upp din double med med tio och manuellt (med if-satser) runda av talet. Enkelt, men kanske inte lika effektivt som en inbyygd funktion,,,

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

[inlägget ändrat 2005-03-06 18:24:27 av Monshi]

Länk till kommentar
Dela på andra webbplatser

Jag håller på med en uträkning där jag värkligen behöver en avrundning på rätt sätt, precis som vanlig altså. 0,4 blir 0 och 0,5 blir 1, hur gör jag?

Det vanliga sättet att göra sånt är att man tar talet +0.5 och gör en cast till en int.

Med andra ord:

 

double d=14.6;
int avrundat=(int)(d+0.5);

 

Då blir 0.4+0.5=0.9 (vilket blir 0 efter cast) och 0.5+0.5=1 (vilket naturligtvis blir 1 efter en cast)

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...