» »

Java čudni rezultati

Java čudni rezultati

bking ::

Če v javi napisem:

for (double i=-1; i<=1; i+=0.1)
{
System.out.println(i);
}

mi pol izpiše:

-1.0
-0.9
-0.8
-0.7000000000000001
-0.6000000000000001
-0.5000000000000001
-0.40000000000000013
-0.30000000000000016
-0.20000000000000015
-0.10000000000000014
-1.3877787807814457E-16
0.09999999999999987
0.19999999999999987
0.2999999999999999
0.3999999999999999
0.4999999999999999
0.5999999999999999
0.6999999999999998
0.7999999999999998
0.8999999999999998
0.9999999999999998
:(
če kdo ve zakaj je to tako ozirom kaj naj nardim, da
bom to zrihtu , naj prosim pove.:'(

Senitel ::

Tako pač delujejo števila s plavajočo vejico...

losnah ::

No ja, ker sem JAVO videl samo enkrat in nikoli vec, nevem koliko bo to pomagal.
Na prvi pogled je bla podobna C-ju, zatorej ce obstaja funkcija printf ??? lahko naredis tako:

for(double i = -1; i <= 1; i += 0.1)
printf("%.1f\n", i);

Ce v JAVI obstaja ta funkcija.

Imortales ::

Ma Java nekaj zeza s števili. Enkrat sem napisal en program, ki izračuna PI. Isti program je vračal različne rezultate na različnih računlanikih (z isto konfiguracijo). Aja, lahko bi probal zaokrožit števila.
To sporočilo se bo samo uničilo čez 5 sekund.

asPeteR ::

bking:

Mas dve moznosti.

1. Da lepo uporabis drug tip v zanki npr int, namesto double. In potem se ustrezno popravis korak iz 0.1 na 1, zakaj sploh uporabljas 0.1 korak??

2. Uporabis funkcijo v JAVI, ki ti lepo zaokrozi steviko ...

bking ::

Mal rešujem naloge iz računalništva, pa morš en program za ene funkcije napisat pol morš
pa to testirat na intervalu od -1 do 1 s korakom 0.1
LJ FRI-jevci vejo za aj gre :D

Glede zaokroževanja bi šlo razn tam kjer bi morala bit nula je čist preveiko odstopanje.
Zdej sm napisu tko:

for (double i=-10; i<=10; i+=1)
{
System.out.pintln(i/10);
}
pa izpise tko k mora.
Sam čudn se mi zdi, da je prej kar neki bluzil, zdej pa nevem al je to normaln in dela to
pri vseh al sam pri men.