Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Alt "Utilizator nou" pe T...

ULBS INFORMATICA

Index preturi

Boxa membrana tweeter infundata
 Am nevoie de poze cu un curcubeu

Whisky for Mac

Xiaomi 14 Gpay

Izolare zid exterior de scandura
 Dezinstalare drivere W11 23H3

Recomandare masina de spalat fiab...

BSOD din cauza Intel Audio DSP dr...

De ce sunt oamenii nostalgici
 Cum vand casa fara factura Hidroe...

Scor FICO minim

Tonometru compensat CAS?

polita RCA ONLINE
 

[CodeBlocks] Functia int() nu returneaza rezultatul corect.

- - - - -
  • Please log in to reply
4 replies to this topic

#1
TorchMan

TorchMan

    Junior Member

  • Grup: Members
  • Posts: 226
  • Înscris: 21.10.2012
Salut!

Am o nelămurire.
Dacă scriu
cout << pow ( 27 , 1.0 / 3.0);

Îmi afișează "3".
Dar dacă scriu
cout << int (pow ( 27 , 1.0 / 3.0));

Îmi afisează "2".
Care e logica?

În alte compilatoare, ambele cout-uri afișează rezultatul corect, 3.

#2
MrReason

MrReason

    Senior Member

  • Grup: Senior Members
  • Posts: 9,266
  • Înscris: 08.10.2010
int nu e functie, e tip de date, iar ce faci tu e casting, adica modificarea tipului de date in int ..

totusi e interesant ce se intampla, nu stiu nici eu de ce da doi... suspiciunea mea e care legatua cu imprecizia cauzata de impartirea lui 1/3, dar totusi e ciudat de ce da 3 intr-un caz si 2 in celalalt..\

edit: de fapt rezultatul real e 2.999999999999999999325423 (ceva de genul) ... iar rotunjirea in sus  e facuta de functia de afisare...

Edited by MrReason, 28 November 2014 - 14:49.


#3
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,598
  • Înscris: 30.07.2003
Unde vezi tu "functia int()" ? Aia nu e functie.
CodeBlocks n-are ce cauta in discutie, el e un IDE. Ce compilator si biblioteca folosesti ? Probabil MinGW &  Co. Ia mai actualizeaza instrumentele.

Edited by neagu_laurentiu, 28 November 2014 - 14:48.


#4
MrReason

MrReason

    Senior Member

  • Grup: Senior Members
  • Posts: 9,266
  • Înscris: 08.10.2010
ca, idee include si <iomanip> si baga asa:

cout << setprecesion(25) << pow ( 27 , 1.0 / 3.0);

iti da ceva gen 2.99999999999996

in momentul in care faci castingul la int, se renunta la toata partea fractionara adica acel .999999999996 si ramane doar 2

Edited by MrReason, 28 November 2014 - 14:56.


#5
TorchMan

TorchMan

    Junior Member

  • Grup: Members
  • Posts: 226
  • Înscris: 21.10.2012
Am luat la cunoștință. Mulțumesc! :D

Anunturi

Neurochirurgie minim invazivă Neurochirurgie minim invazivă

"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv.

Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate