11. november 2004 - 17:28Der er
7 kommentarer og 1 løsning
Når man regner med Double.MIN_VALUE
Jeg har et program, hvor jeg gerne vil tage hensyn til "missing values" (altså tal der ikke er sat til noget), hvilket jeg gør ved at sætte dem til Double.MIN_VALUE. Sådanne tal skal man selvsagt ikke regne videre på, men gør man det alligevel, får man nogle spøjse resultater, jf. nedenfor:
Gør man det samme med Integer.MIN_VALUE er der ingen problemer, altså: System.out.println(0+Integer.MIN_VALUE); System.out.println(1+Integer.MIN_VALUE); System.out.println((int)(0.5*Integer.MIN_VALUE)); System.out.println((int)(0.6*Integer.MIN_VALUE)); - giver: -2147483648 -2147483647 -1073741824 -1288490188
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
->arne_v: Jamen, det er jo ganske rigtigt! I farten troede jeg, at Double.MIN_VALUE var defineret på samme måde som Integer.MIN_VALUE, Long.MIN_VALUE osv., men du har jo ganske ret! Lidt pinligt at man ikke kan genkende 4.9E-234 som et lille positivt tal og ikke et stort negativt tal, når man i øvrigt er matematisk uddannet! :-)
I øvrigt kan jeg se, at man vedr. Double har en række specielle konstanter Double.NaN, Double.NEGATIVE_INFINITY og Double.POSITIVE_INFINITY, som jeg givetvis vil kunne bruge i relation til "missing values".
->arne_v: Jeg har haft samme tanke men er umiddelbart lidt bange for disse wrapper-udgaver ved meget store beregninger pga. performance, men det er måske ubegrundet (?)
->arne_v: Enig omkring Double.NaN. Har lige checket at Double.POSITIVE_INFINITY og Double.NaN heldigvis også behandles rigtigt, når de skrives ud i en binær fil og læses ind igen.
Der er simpelthen sat nogen bit mønstre af til formålet i IEEE standarden.
Så ingen problemer med at skrive og læse til og fra en binær fil.
Tal skrevet fra et Java program vil også kunne læses af et C++ program og stadig være NaN.
Synes godt om
Ny brugerNybegynder
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.