/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
At dividere ?????
Fra : Tonni Schmücker


Dato : 22-09-01 19:18

Hej NG

Jeg er lige begyndt på datamatikeruddannelsen her den 3. sep. og sidder nu
og eksperimentere ... nå men mit problem er ganske simpelt, og en smule
besynderligt synes jeg (men jeg er jo også ny) hmmm well here goes:

hvis jeg skriver:

double devide = (4/3);

burde jeg så ikke have værdien 1.3333333333 ???
problemet er at jeg får værdien 1 ???

derimod hvis jeg skriver:

double devide = 4/3D;

så får jeg den rigtige værdi!!! men kan det passe at man ikke kan få det
rigtige resultat uden dette "D" ??

på forhånd tak

T. Schmücker



 
 
Ulrik Magnusson (22-09-2001)
Kommentar
Fra : Ulrik Magnusson


Dato : 22-09-01 19:33


"Tonni Schmücker" wrote:

> hvis jeg skriver:
> double devide = (4/3);
> burde jeg så ikke have værdien 1.3333333333 ???
> problemet er at jeg får værdien 1 ???
> derimod hvis jeg skriver:
> double devide = 4/3D;
> så får jeg den rigtige værdi!!! men kan det passe at man ikke kan få det
> rigtige resultat uden dette "D" ??

4/3 giver 1, fordi heltalsdivision nu engang foregår på den måde, og
_derefter_
konverteres dette til double og tildeles devide.

Du kan også skrive 4.0/3 eller 4/3.0 - det kan egentlig ikke lade sig gøre,
men
hhv 3 og 4 konverteres til double før divisionen efter en regel om at der kun
laves automatiske "widening conversions" - se mere her:
http://java.sun.com/docs/books/jls/first_edition/html/5.doc.html#170983

Ulrik Magnusson


Thomsen (23-09-2001)
Kommentar
Fra : Thomsen


Dato : 23-09-01 21:24

Kan man sætte D bagefter et tal?
Hvorfor kan man skrive 4/3D ?

Jeg går ud fra, at D'et betyder typecast til double, da jeg også havde held
med at bruge L (long) og F (float)

Hvor kan jeg finde mere om dette?
- Thomsen


"Tonni Schmücker" <tonni@cool.dk> wrote in message
news:9oikm9$134g$1@news.cybercity.dk...
> Hej NG
>
> Jeg er lige begyndt på datamatikeruddannelsen her den 3. sep. og sidder nu
> og eksperimentere ... nå men mit problem er ganske simpelt, og en smule
> besynderligt synes jeg (men jeg er jo også ny) hmmm well here goes:
>
> hvis jeg skriver:
>
> double devide = (4/3);
>
> burde jeg så ikke have værdien 1.3333333333 ???
> problemet er at jeg får værdien 1 ???
>
> derimod hvis jeg skriver:
>
> double devide = 4/3D;
>
> så får jeg den rigtige værdi!!! men kan det passe at man ikke kan få det
> rigtige resultat uden dette "D" ??
>
> på forhånd tak
>
> T. Schmücker
>
>



Lars Dam (23-09-2001)
Kommentar
Fra : Lars Dam


Dato : 23-09-01 23:00

On Sun, 23 Sep 2001 22:23:47 +0200, "Thomsen"
<andersthomsen@mobilixnet.dk> wrote:

>Kan man sætte D bagefter et tal?
>Hvorfor kan man skrive 4/3D ?

Ja...


>Jeg går ud fra, at D'et betyder typecast til double, da jeg også havde held
>med at bruge L (long) og F (float)

Korrekt. Det er en måde hvorpå due over for compileren fortæller
hvilken type det er f, d og l for float, double og long

>Hvor kan jeg finde mere om dette?

I the java language specification:

http://java.sun.com/docs/books/jls/second_edition/html/jTOC.doc.html


Jeg gad ikke lede efter det selv, men det står der et sted.


>- Thomsen

vh. ld

Lars Dam (23-09-2001)
Kommentar
Fra : Lars Dam


Dato : 23-09-01 23:11

On Sun, 23 Sep 2001 23:59:40 +0200, Lars Dam
<larsdamXXspamXXprotectionXX@post2.tele.dk> wrote:

>
>>Hvor kan jeg finde mere om dette?
>
>I the java language specification:
>
>http://java.sun.com/docs/books/jls/second_edition/html/jTOC.doc.html
>
>
>Jeg gad ikke lede efter det selv, men det står der et sted.

Og så ser jeg det straks efter jeg smed den forrige msg. afsted:

http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#230663

pkt. 3.10.2

vh. ld

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

Månedens bedste
Årets bedste
Sidste års bedste