/ 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
brøkudregning
Fra : Christian Bohr-Halli~


Dato : 26-10-02 19:58

Hvad har jeg misset her? Hvorfor bliver resultatet kun rigtigt i den
første?
   3.0 * 1/3 = 1,0
   1/3 * 3.0 = 0,0

   (1/3) * 3.0) = 0,0
   3.0 * (1/3) = 0,0

--
"Death is the cure of all diseases". Kilde: ukendt

 
 
Michael Hoummark (26-10-2002)
Kommentar
Fra : Michael Hoummark


Dato : 26-10-02 20:33


"Christian Bohr-Halling" <nospam@direkte.org> skrev i > første?
> 3.0 * 1/3 = 1,0
> 1/3 * 3.0 = 0,0
>
> (1/3) * 3.0) = 0,0
> 3.0 * (1/3) = 0,0

Hvad er heder den variabel du gemmer resultatet i



Jan Jonasen (26-10-2002)
Kommentar
Fra : Jan Jonasen


Dato : 26-10-02 20:33

In article <kbolru06l2c3dljm6ctof2m2mm8gh19he0@dtext2.news.tele.dk>,
Christian Bohr-Halling (nospam@direkte.org) wrote:
> Hvad har jeg misset her? Hvorfor bliver resultatet kun rigtigt i den
> første?
>    3.0 * 1/3 = 1,0
>    1/3 * 3.0 = 0,0
>
>    (1/3) * 3.0) = 0,0
>    3.0 * (1/3) = 0,0
>
Java omformer som standard dine tal til int, i processen afrundes der ikke,
men decimalerne fjernes blot. Du mangler også (formoder jeg) nogle
paranteser for at gøre din mening åbenlys. Dine stykker bliver derfor:
1. 3.0 * 1 / 3 = 1.0 (ganske rigtigt, prøv det på en lommeregner (-:).
2. 1 / 3 (== 0) * 3 = stadig nul.
3. (1 / 3) bliver nul pga. int håndteringen.
4. 3.0 * (1/3 (== 0)) er også nul.

De bør nærmere være som følgende:
2. 1f/3f * 3.0
Det lille f betyder at tallet er en float. Her vil du få en kompiler
warning, da programmet internt vil kalde dit 3.0 for en double, skidt med
det i dette tilfælde, eller skriv 3.0f, så vil resultatet blive 1.0.
Generelt, vil du regne med decimaltal, så fortæl programmet det, da der
ellers ofte vil opstå misforståelser mellem menneske og computer.

--
Mvh/re Jan Jonasen
jonasen (at) it (dot) dk

If I wanted culture, I'd eat yogurt.

Jan Jonasen (26-10-2002)
Kommentar
Fra : Jan Jonasen


Dato : 26-10-02 20:39

In article <MPG.18250c3aa7f6258b9897a1@news.stofanet.dk>, Jan Jonasen
(jonasenREMOVE@THISit.dk) wrote:
> Java omformer som standard dine tal til int, ....yadda yadda
>
Med mindre der åbenlyst er tale om decimal tal ved brug af punktum ala 3.0,
så bliver det en double.

--
Mvh/re Jan Jonasen
jonasen (at) it (dot) dk

If I wanted culture, I'd eat yogurt.

Christian Bohr-Halli~ (26-10-2002)
Kommentar
Fra : Christian Bohr-Halli~


Dato : 26-10-02 21:21

Jan Jonasen <jonasenREMOVE@THISit.dk> posting:

>>    3.0 * 1/3 = 1,0
>>    1/3 * 3.0 = 0,0
>>
>>    (1/3) * 3.0) = 0,0
Hov, sidste ")" skal ikke være der, men det var nu kun en fejl i
indlægget.
>>    3.0 * (1/3) = 0,0

>Du mangler også (formoder jeg) nogle paranteser for at gøre din mening åbenlys.

Matematisk set er de jo ens, hvis det er det, du tænker på.

>2. 1 / 3 (== 0) * 3 = stadig nul.

Dér var det oversete (øv!) -- division af int'er. Takker.

--
"Death is the cure of all diseases". Kilde: ukendt

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408907
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste