|
| 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
| |
|
|