Wpisy otagowane ‘notacja naukowa’

Float, double, real czyli typ zmiennoprzecinkowy w PHP

środa, 29 Sierpień 2012

Kolejny artykuł o typach. Dziś przedstawię typ zmiennoprzecinkowy, czyli typ który pozwala zapisać wartości rzeczywiste np. 4.487376 albo 0.00000000000341

Wartości tego typu możemy zapisywać w notacji zwykłej i naukowej.

<?php
  $liczba5=9.49;		//Zapis zwykły
  $liczba6=19.401e-4;	//Notacja naukowa liczby  0.0019401
?>

Liczby zmiennoprzecinkowe mają ograniczoną precyzję. Zazwyczaj jest to 1.11e-16. Reprezentacja wewnętrna liczb zmiennoprzecinkowych powoduje, że ostatnia cyfra liczby nie jest całkowicie wiarygodna.

<?php
  echo (int)((0.7+0.1)*10);	//wyświetli 7
?>

Do rzutowania na typ zmiennoprzecinkowy służy (float), (double) lub (real). Jeżeli w obliczeniach pierwszym elementem jest liczba typu zmiennoprzecinkowego lub ciąg znaków, który po rzutowaniu jest typu zmiennoprzecinkowego, to wynik działania jest również rzutowany na typ zmiennoprzecinkowy.

<?php
  $liczba1=(float)'3.4';
  $liczba2=(double)4*2;
  $liczba3=(real)99;
  $liczba4=2.5*8;
  $liczba5='0.75'*4;
?>