Változó tipusának megváltoztatása explicit módon

 

A megadott érték, tizedes számokat is tartalmaz, azaz double típusú.
Átalakítjuk egész számra, azaz integer típusú lesz.
<?php
$teszt= 3.99999999999;
$tipusvaltozas = (integer)$teszt;
print("Általunk megadott érték double: ".$teszt."<br>");
print("Típusváltozás után integer lesz: ".$tipusvaltozas);
?>
Programunk eredménye:

Általunk megadott érték double: 3.99999999999
Típusváltozás után integer lesz: 3

 

A megadott értéket, logikaira alakítjuk.
<?php
$valtozo = 10;                    // $valtozo most szám típusú.
$tipusa = (boolean) $valtozo;      // $tipusa logikai típusú.
print("Program szerint, ezt adtuk meg: ".$valtozo."<br />");
print("Típusváltozás után <b>logikai</b> lesz: ".$tipusa."<br />");
?>
Programunk eredménye:

Program szerint, ezt adtuk meg: 10
Típusváltozás után logikai lesz: 1

 

Mire jó az integer?
Ha egy programművelet után, akármilyen érték is lesz, azaz tizedes számjegyeket is tartalmazhat, akkor is egészszámmal kel folytatni a további műveleteket.

Mielőtt saját kezűleg írjuk be az értéket, győződjünk meg egy kis programmal, hogy hány számjegyet kezel programunk.
Legegyszerűbb megoldás, ha 22-őt elosszuk 7-el, ekkor végtelen sok számot kellene kapnunk.
De a program csak egy meghatározott hosszúságú számsort fog kiírni.
Az így kapott számsorból, beleértve a tizedes és egészszámokat is, megszámolhatjuk, hogy saját kezűleg mi az a számmennyiség ami után, már nincs értelme többet beírni.


Az (integer) nem kerekít, egyszerűen a tizedes számjegyeket levágja, és csak az egész számot írja ki.

 

Programunk, hány számjeggyel dolgozik jól?
<?php
echo "Példa: 12 - számjegyig:";
$teszt_a= 8.99999999999;
$ertek_a = (integer)$teszt_a;
print("Általunk megadott érték double: 8.99999999999 <br />");
print("Program szerint, ezt adtuk meg: ".$teszt_a."<br />");
print("Típusváltozás után integer lesz: ".$ertek_a."<br />");

$teszt_b= 3.99999999999; $ertek_b = (integer)$teszt_b; print("Általunk megadott érték double: 3.99999999999<br />"); print("Program szerint, ezt adtuk meg: ".$teszt_b."<br />"); print("Típusváltozás után integer lesz: ".$ertek_b."<br />");
// 13. számjegytől, már nem tökéletes: $teszt_c= 8.999999999999; $ertek_c = (integer)$teszt_c; print("Általunk megadott érték double: 8.999999999999 <br />"); print("Program szerint, ezt adtuk meg: ".$teszt_c."<br />"); print("Típusváltozás után integer lesz: ".$ertek_c."<br />");
$teszt_d= 3.999999999999; $ertek_d = (integer)$teszt_d; print("Általunk megadott érték double: 3.999999999999<br />"); print("Program szerint, ezt adtuk meg: ".$teszt_d."<br />"); print("Típusváltozás után integer lesz: ".$ertek_d."<br />");
// Egy műveletet, melynek értéke valójában végtelen."; echo "Programunknak, 22-őt kell elosztani 7-el."; $a= 22; $b= 7; $c=$a/$b; $c_ertek = (integer)$c; print("22 / 7 = ".$c."<br />"); print("Típusváltozás után integer lesz: ".$c_ertek."<br />"); ?>
Programunk eredménye:

Példa: 12 - számjegyig:

Általunk megadott érték double: 8.99999999999
Program szerint, ezt adtuk meg: 8.99999999999
Típusváltozás után integer lesz: 8

 

---------------------------------------------------------

 

Általunk megadott érték double: 3.99999999999
Program szerint, ezt adtuk meg: 3.99999999999
Típusváltozás után integer lesz: 3

 

13. számjegytől, már nem tökéletes:

Általunk megadott érték double: 8.999999999999
Program szerint, ezt adtuk meg: 8.999999999999
Típusváltozás után integer lesz: 8

---------------------------------------------------------

 

Általunk megadott érték double: 3.999999999999
Program szerint, ezt adtuk meg: 3.999999999999
Típusváltozás után integer lesz: 3

 

Nézzünk egy program által elvégzett műveletet, melynek értéke valójában végtelen.

Programunknak, 22-őt kell elosztani 7-el.

22 / 7 = 3.1428571428571
Megszámolhatjuk, hogy programunk, mennyi számértéket ír ki, az eredménynél!
Típusváltozás után integer lesz: 3

 

 

Programunk hány darab számértékkel dolgozik, az alapbeállítástól függ. Ebből adódik, hogy más-más szerveren eltérések lehetnek. Alapértelmezett beállításnál 12 számjegy az elfogadott.