Avatar billede esbenp Nybegynder
29. juni 2006 - 00:21 Der er 4 kommentarer og
1 løsning

Floating point

Følgende kode:

System.out.println(0.0/0 );
System.out.println(0.0/0 == Double.NaN );
System.out.println(0.0/0 == Float.NaN );

Giver output:

NaN
false
false

Hvorfor er 0.0/0 ikke lig NaN når man sammenligner?
Avatar billede arne_v Ekspert
29. juni 2006 - 01:04 #1
Brug Double.isNan og Float.isNan til at teste med.

NaN == NaN returnerer false !
Avatar billede esbenp Nybegynder
29. juni 2006 - 11:03 #2
Det var jo ikke specielt logisk. Jeg kan se isNaN() er implementeret som return v!=v. Float.Equals siger dog true til Nan==Nan.

smid et svar
Avatar billede arne_v Ekspert
29. juni 2006 - 13:53 #3
fordi 2 ting ikke er et tal behøver de jo ikke at være "ens"

det er lidt ligesom SQL NULL

p.g.a. den egenskab kan isNaN implementeres som v!=v
Avatar billede arne_v Ekspert
29. juni 2006 - 13:53 #4
og svar
Avatar billede arne_v Ekspert
29. juni 2006 - 13:54 #5
det er iøvrigt ikke et Java issue

det er defineret dådan i IEEE floating point standarden og derfor gælder det
også i andre sprog

vi havde det i JavaScript kategorien for et par dage siden
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester