<style>.lazy{display:none}</style>
 Tipul de date real/float

      Mulţimea de valori ale tipului de date real/float este formată din numerele reale care pot fi reprezentate pe calculatorul-gazdă al limbajului.

     Tipul de date real/float:

  • memorează numere reale;
  • separatorul zecimal este punctul .
  • se mai numesc tipuri în virgulă mobilă;
  • în scrierea numerelor reale se poate utiliza și un factor de scală care este un număr întreg precedat de litera e (E) care indică că numărul urmat de factorul de scală se înmulțește cu 10 la puterea respectivă (ex. forma uzuală - 8,12 * 10-5; notația Pascal/C++ - 8.12e-5);
  • datele reale pot fi date în forma fixă sau în forma științifică (exponențială);
  • tipul real/float se reprezintă pe 4 octeți;
  • operațiile ce se pot face cu tipul real/float sunt +, -, *, / (împărțirea).

     În tabelul de mai jos sunt prezentate cele mai utilizate tipuri de date reale și extensiile lor.

    PASCAL
 Denumire tip Octeți Domeniul de valori Precizia
 single 4 -3,4 * 1038 ... 3,4 * 1038 6 cifre zecimale
 real 6 -1,7 * 1038 ... 1,7 * 1038 11 - 12 cifre zecimale
 double 8 1,7 * 10308 ... 1,7 * 10308 15 - 16 cifre zecimale
 extended 10 -3,4 * 104932 ... 3,4 * 104932 18 - 19 cifre zecimale
C++    
 float  4-3,4 * 1038 ... 3,4 * 1038 6 cifre zecimale
double8 1,7 * 10308 ... 1,7 * 10308 15 - 16 cifre zecimale
long double10 -3,4 * 104932 ... 3,4 * 10493218 - 19 cifre zecimale

 

Exemplu - cu programul de mai jos pot fi studiate proprietățile operațiilor +, -, *, /.

 Pascal C++
 Program P_ex_operatii;

{Operatii cu date de tipul real }
var x, y, z : real;
begin
   writeln('Introduceti numerele reale x, y:');
   readln(x,y);
   writeln('x=', x);
   writeln('y=', y);
   z:=x+y; writeln('x+y=', z);
   z:=x-y; writeln('x-y=', z);
   z:=xy; writeln('xy=', z);
   z:=x/y; writeln('x/y=', z);
end.

#include <iostream>

#include <iomanip>

using namespace std;

int main()

{

    double x, y, z;

    cout<<"Introduceti numerele reale x si y:";

cin>>x>>y;

cout<<"x="<<x<<endl;

cout<<"y="<<y<<endl;

cout<<scientific<<setprecision(10);

z=x+y; cout<<"x+y="<<z<<endl;

z=x-y; cout<<"x-y="<< z<<endl;

z=x*y; cout<<"x*y="<<z<<endl;

z=x/y; cout<<"x/y="<<z;

return 0;

}