Java
« previous entry | next entry »
Mar. 13., 2011 | 12:56 pm
posted by: sursurs in pajautaa
it kā elementāra lieta, BET, kāpēc kods:
man atgriež:
0.0
0.0
0.0
0.0
0.0
Ja pamēģina aizkomentēto, tad pirmais no skaitļiem ir 1.0. Respektīvi - tikko skaitlis ir mazāks par 1, tā izmet 0.0 nevis attiecīgi 0.25 vai 0.5 vai whatever??!!
p.s. tas nav vajadzīgs kkādai rocket science, bet vnk es te eju cauri vienam savam kōdam, kas skolā vajadzīgs lab-darbiem un šķiet atradu, ka tieši šitā visa dēļ man nekas neiet kā vajadzētu :(
double rez; rez=0; for(int i=1; i<6; i++) { //rez=(1/i); rez+=1/((3*i-2)*(3*i+1)); System.out.println(rez); }
man atgriež:
0.0
0.0
0.0
0.0
0.0
Ja pamēģina aizkomentēto, tad pirmais no skaitļiem ir 1.0. Respektīvi - tikko skaitlis ir mazāks par 1, tā izmet 0.0 nevis attiecīgi 0.25 vai 0.5 vai whatever??!!
p.s. tas nav vajadzīgs kkādai rocket science, bet vnk es te eju cauri vienam savam kōdam, kas skolā vajadzīgs lab-darbiem un šķiet atradu, ka tieši šitā visa dēļ man nekas neiet kā vajadzētu :(
from: qgmr101
date: Mar. 13., 2011 - 02:02 pm
#
Risinājums varētu būt pateikt Java'i, ka 1 ir double, šādi: 1d
rez+=1d/((3*i-2)*(3*i+1));
vai
rez+=1/(double)((3*i-2)*(3*i+1));
Literatūra:
The Java Language Specification, Third Edition (visas pārējās grāmatas būtībā atgremo šo dažādās formās).
Un konkrētajam gadījumam:
1. 15.8.1 Lexical Literals
2. 5.6.2 Binary Numeric Promotion
3. 3.10.2 Floating-Point Literals
Atbildēt | Diskusija
from: sursurs
date: Mar. 13., 2011 - 02:18 pm
#
Atbildēt | Iepriekšējais