PHP si MySql (Programator Web 2)

DOCUMENTATIE CURS

float

Definitie
float este tipul numerelor cu zecimale. ex: 2.3 , -19.08


Numerele float pot fi exprimate in php folosind si sintaxa exponentiala, cu ajutorul literei e. Numarul ce urmeaza dupa litera e reprezinta o putere a lui 10. ex: 3.4e3 este echivalent cu 3.4 * 103 adica 3400.

Sursa script Sursa HTML in browser
1
2
3
4
5
6
7
8
9
10
<?php
$a = 2.33;
var_dump($a); // float(2.33)
$a = 14.09e3;
var_dump($a); // float(14090)
$a = 87.216e-3;
var_dump($a); // 87.216 se inmulteste cu 10 la puterea -3. afiseaza:  float(0.087216)
?>
1
2
3
float(2.33)
float(14090)
float(0.087216)


Tipul de date float poate intinde capcane in anumite cazuri. Nu se recomanda verificarea egalitatii a doua numere float datorita modului in care sunt reprezentate intern si preciziei limitate.

Sursa script Sursa HTML in browser
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
/* 
afiseaza: 7. desi 0.8 * 10 este 8. 
Dar, rezultatul 0.7 + 0.1 este tinut intern ca 7.9999, convertit la int => 7
*/
echo (int)((0.1 + 0.7) * 10);  // afiseaza 7
echo "\n";
/*
numerele foarte mari au o precizie limitata (adica nu sunt reprezentate exact si complet)
din acest motiv desi a2 este a1 - 1, comparandu-le cu PHP ele sunt egale
*/
$a1 = 12345678901234567; 
$a2 = $a1 - 1; 
if ($a1 == $a2) {
  echo 'a1 si a2 sunt egale desi nu sunt de fapt';
  echo "\n";
   var_dump($a1);
   var_dump($a2);
 }
?>
1
7


© 2006-2012 Crystal Mind Academy. All rights reserved