/ 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
Sammenligning af floats
Fra : Lisbet Kaas Petersen


Dato : 07-05-01 16:45

Hej

Jeg har brug for at sammenligne to floating point tal, hvor det kun er et
krav, at de skal være ens indtil 2. ciffer efter komma. Hvordan gør jeg
lettest det?

--
Bye
ICQ 113181477



 
 
Lars Dam (07-05-2001)
Kommentar
Fra : Lars Dam


Dato : 07-05-01 17:11

On Mon, 7 May 2001 17:44:57 +0200, "Lisbet Kaas Petersen"
<lisbet.kaas@mail.tele.dk> wrote:

>Hej
>
>Jeg har brug for at sammenligne to floating point tal, hvor det kun er et
>krav, at de skal være ens indtil 2. ciffer efter komma. Hvordan gør jeg
>lettest det?

Du gange vel tallene med 100, og truncater dem?

1234.5667 * 100 = 123456.67, trunc=123456
1234.5689 * 100 = 123456.89, trunc=123456

vh. ld

--
"Time is the fire in which we burn"

Igor V. Rafienko (07-05-2001)
Kommentar
Fra : Igor V. Rafienko


Dato : 07-05-01 17:42

* Lars Dam

[snip]

> > Jeg har brug for at sammenligne to floating point tal, hvor det
> > kun er et krav, at de skal være ens indtil 2. ciffer efter komma.
> > Hvordan gør jeg lettest det?
>
> Du gange vel tallene med 100, og truncater dem?


og dersom det opprinnelige tallet * 100 > INT|LONG_MAX?

<URL:http://www.eskimo.com/~scs/C-faq/q14.5.html>

I dette tilfellet er det snakk om å velge passende verdi av epsilon
(imvho).





ivr
--
Documentation is like sex: when it is good, it is very, very good; and
when it is bad, it is better than nothing.
                  -- Dick Brandon

Thomas Krog (07-05-2001)
Kommentar
Fra : Thomas Krog


Dato : 07-05-01 21:21

det kommer an på om det skal forståes helt "bogstaveligt". Dvs skal følgende
to tal være ens?:

12,459
12,460

Lars's løsning vil returnere falsk mens Igor's løsning vil returnere sandt.



Rasmus Neckelmann (15-05-2001)
Kommentar
Fra : Rasmus Neckelmann


Dato : 15-05-01 13:37

"Lisbet Kaas Petersen" wrote:
> Jeg har brug for at sammenligne to floating point tal, hvor det kun er et
> krav, at de skal være ens indtil 2. ciffer efter komma. Hvordan gør jeg
> lettest det?

if( fabs(tal1-tal2) < 0.01f )

Linjen undersøger om forskellen på tal1 og tal2 er mindre end 0,01.

--
mvh Rasmus Neckelmann



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste