Avatar billede juks Novice
14. november 2005 - 20:14 Der er 11 kommentarer og
1 løsning

hvorfor virker 100/36d

Hej  jeg ville lige høre om der er nogen der kan forklarer mig hvorfor det her virker
Double divis = 100/36d;

før hen brugte jeg modulus men det her virker med ved ikke helt hvorfor ?
Avatar billede arne_v Ekspert
14. november 2005 - 20:16 #1
definer virker og hvorfor skulle det ikke virke ?
Avatar billede Slettet bruger
14. november 2005 - 20:18 #2
Nu er jeg ikke helt sikker, men jeg mener at det er fordi at 100 bliver defineret som en int som default og da en int er mindre præcis end en Double kan det lade sig gøre.
Avatar billede juks Novice
14. november 2005 - 20:18 #3
fordi hvis man skriver 100/36 får man en fejl... hvad gør/betyder det d
Avatar billede Slettet bruger
14. november 2005 - 20:19 #4
At du definere den som en Double
Avatar billede arne_v Ekspert
14. november 2005 - 20:24 #5
100/36 giver 2
100/36d svarer til 100/36.0d og giver 2.77777

og derfor er det forskelligt

det første er en int og det andet er en double

fra og med Java 1.5 kan du lave autoboxing d.v.s. at man kan assigne en
double til en Double

men man kan ikke assigne en int til en Double

du kan godt assigne en int til en double

double x = 100/36;

virker men giver altså 2.0
Avatar billede juks Novice
14. november 2005 - 20:43 #6
fra og med Java 1.5 kan du lave autoboxing d.v.s. at man kan assigne en
double til en Double..

kan du uddybe det lidt
Avatar billede arne_v Ekspert
14. november 2005 - 20:47 #7
double er en simpel data type
Double er en klasse

i mange år har vi måttet skrive:

double x1 = 12.34;
Double x2 = new Double(x1)
double x3 = x2.doubleValue();

men fra og med 1.5 kan vi nøjes med:

double x1 = 12.34;
Double x2 = x1
double x3 = x2;

de hedder teknisk auto boxing og unboxing.
Avatar billede juks Novice
14. november 2005 - 22:10 #8
Double divis = 100/36d


ja indtil videre er jeg med men hvorfor det lille d efter 36
Avatar billede arne_v Ekspert
14. november 2005 - 22:12 #9
36d = 36.0d = 36.0d0 = 36.0 * 10^0

d står for double
Avatar billede juks Novice
14. november 2005 - 22:13 #10
ok ... takker smid lige et svar..
Avatar billede arne_v Ekspert
14. november 2005 - 22:24 #11
det med d skrev maximums faktisk allerede 20:19:32

(han fik bare skrevet Double ikke double, hvilket har betydning i Java)
Avatar billede Slettet bruger
15. november 2005 - 10:09 #12
Ja, der er ret meget forskel på Double og double. Man skal sgu passe på med stort og småt i Java :-)
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