/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Afrunding til nærmeste
Fra : Teis Draiby


Dato : 11-06-03 23:43

Eh... hvordan laver man en afrunding til nærmeste heltal (eller til antal af
angivne decimaler). Således:

afrunding(4.5) = 4
afrunding(3.1) = 3
afrunding(2.9) = 3

jeg har kigget lidt sporadisk i math.h, men jeg kan kun se floor og ceil...
(jeg anvender VC++)

Hilsen Teis



 
 
Jens Axel Søgaard (12-06-2003)
Kommentar
Fra : Jens Axel Søgaard


Dato : 12-06-03 00:28

Teis Draiby wrote:
> Eh... hvordan laver man en afrunding til nærmeste heltal (eller til antal af
> angivne decimaler). Således:
>
> afrunding(4.5) = 4
> afrunding(3.1) = 3
> afrunding(2.9) = 3
>
> jeg har kigget lidt sporadisk i math.h, men jeg kan kun se floor og ceil...
> (jeg anvender VC++)

Hvis du vil have afrund(4.5) til at give 4 kan du bruge

afrund(x) = ceil(x-0.5)

men normal (matematisk) afrunding er

afrund = floor(x+0.5)

Det skal dog siges, at IEEE's round giver det nærmeste heltal
til x vil give, hvis x er lige mellem to heltal, det nærmeste
*lige* heltal.

--
Jens Axel Søgaard




Teis Draiby (12-06-2003)
Kommentar
Fra : Teis Draiby


Dato : 12-06-03 07:53

Tak for svar...
Jeg er specielt interesseret i en funktion, der følger IEEE standarten, da
resultatet skal matche et andet resultat, som er beregnet i et stykke
assembly hvor jeg har brugt SSE2 instruktioner (-der så vidt jeg ved også
afrunder "x,5" på denne mærkelige måde til nærmeste lige tal).

Bliver jeg så nød til at lave min egen funktion?


Teis


"Jens Axel Søgaard" <usenet@jasoegaard.dk> wrote in message
news:3ee7bafe$0$97164$edfadb0f@dread12.news.tele.dk...
> Teis Draiby wrote:
> > Eh... hvordan laver man en afrunding til nærmeste heltal (eller til
antal af
> > angivne decimaler). Således:
> >
> > afrunding(4.5) = 4
> > afrunding(3.1) = 3
> > afrunding(2.9) = 3
> >
> > jeg har kigget lidt sporadisk i math.h, men jeg kan kun se floor og
ceil...
> > (jeg anvender VC++)
>
> Hvis du vil have afrund(4.5) til at give 4 kan du bruge
>
> afrund(x) = ceil(x-0.5)
>
> men normal (matematisk) afrunding er
>
> afrund = floor(x+0.5)
>
> Det skal dog siges, at IEEE's round giver det nærmeste heltal
> til x vil give, hvis x er lige mellem to heltal, det nærmeste
> *lige* heltal.
>
> --
> Jens Axel Søgaard



Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408186
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste