/ Forside / Karriere / Uddannelse / Højere uddannelser / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Højere uddannelser
#NavnPoint
Nordsted1 1588
erling_l 1224
ans 1150
dova 895
gert_h 800
molokyle 661
berpox 610
creamygirl 610
3773 570
10  jomfruane 570
sammenligning af doubles
Fra : E


Dato : 14-12-01 23:34

Hej,

Hvad er den bedste måde at sammenligne to doubles (64 bit flydende tal) på?

Man hvis eksempelvis er tilfreds med de 10 første decimaler er ens? Hvad er
standard?

Mit forslag ville være:

(trunc(a*10.0) == trunc(b*10.0)).

Mvh
Emil



 
 
Martin Petersen (14-12-2001)
Kommentar
Fra : Martin Petersen


Dato : 14-12-01 23:55

E wrote:
> Hvad er den bedste måde at sammenligne to doubles (64 bit flydende tal)
> på?
>
> Man hvis eksempelvis er tilfreds med de 10 første decimaler er ens? Hvad
> er standard?
>
> Mit forslag ville være:
>
> (trunc(a*10.0) == trunc(b*10.0)).
Prøv
news:dk.edb.programmering


/Martin

Henning Makholm (16-12-2001)
Kommentar
Fra : Henning Makholm


Dato : 16-12-01 13:42

Scripsit "E" <nospam@nospam.org>

> Hvad er den bedste måde at sammenligne to doubles (64 bit flydende tal) på?

Den bedste måde er at indrette sine algoritmer så man ikke har brug
for at sammenligne flydendekommatal som er tæt på hinanden. Kan det
ikke lade sig gøre, må man analysere den konkrete situation for at
finde ud af hvad der giver mening der.

> Mit forslag ville være:

> (trunc(a*10.0) == trunc(b*10.0)).

Det vil være tilstrækkeligt til nogen (få) formål. Men nogenlunde
samme funktion kan udregnes hurtigere som

abs(a-b) < 0.1.

--
Henning Makholm "Hi! I'm an Ellen Jamesian. Do
you know what an Ellen Jamesian is?"

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste