|
| 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
| |
|
|