{"id":37502,"date":"2026-01-06T19:41:35","date_gmt":"2026-01-06T16:41:35","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=37502"},"modified":"2026-01-06T19:41:35","modified_gmt":"2026-01-06T16:41:35","slug":"phpde-sayilarla-calismak-kapsamli-bir-rehber","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/phpde-sayilarla-calismak-kapsamli-bir-rehber\/","title":{"rendered":"PHP&#8217;de Say\u0131larla \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber"},"content":{"rendered":"<p><body><\/p>\n<h2>PHP&#8217;de Say\u0131larla \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber<\/h2>\n<p>PHP, web uygulamalar\u0131 geli\u015ftirmede en pop\u00fcler dillerden biridir ve hemen hemen her uygulamada say\u0131larla i\u015flem yapmak ka\u00e7\u0131n\u0131lmazd\u0131r. Veritaban\u0131ndan gelen fiyatlar\u0131 i\u015flemekten, kullan\u0131c\u0131 giri\u015flerini do\u011frulamaya, karma\u015f\u0131k matematiksel hesaplamalar yapmaya kadar say\u0131lar, PHP programlaman\u0131n temelini olu\u015fturur. Bu rehberde, PHP&#8217;de say\u0131 t\u00fcrlerini, temel aritmetik i\u015flemleri, faydal\u0131 say\u0131sal fonksiyonlar\u0131 ve \u00f6zellikle ondal\u0131kl\u0131 say\u0131larla \u00e7al\u0131\u015f\u0131rken dikkat edilmesi gereken hassasiyet konular\u0131n\u0131 detayl\u0131 bir \u015fekilde inceleyece\u011fiz.<\/p>\n<h3>PHP&#8217;de Say\u0131 T\u00fcrleri ve Temelleri<\/h3>\n<p>PHP, farkl\u0131 ihtiya\u00e7lara y\u00f6nelik iki ana say\u0131 t\u00fcr\u00fcn\u00fc destekler: tam say\u0131lar (integers) ve ondal\u0131kl\u0131 say\u0131lar (floats).<\/p>\n<h4>Tam Say\u0131lar (Integers)<\/h4>\n<p>Tam say\u0131lar, ondal\u0131k k\u0131sm\u0131 olmayan pozitif veya negatif say\u0131lard\u0131r. PHP&#8217;de tam say\u0131lar genellikle 64-bit platformlarda -9,223,372,036,854,775,808 ile 9,223,372,036,854,775,807 aras\u0131nda bir aral\u0131\u011fa sahiptir. 32-bit platformlarda ise bu aral\u0131k daha dard\u0131r (-2,147,483,648 ile 2,147,483,647 aras\u0131). Bir tam say\u0131, bu aral\u0131\u011f\u0131 a\u015ft\u0131\u011f\u0131nda otomatik olarak ondal\u0131kl\u0131 say\u0131ya (float) d\u00f6n\u00fc\u015f\u00fcr. PHP, tam say\u0131lar\u0131 onluk (decimal), onalt\u0131l\u0131k (hexadecimal &#8211; 0x ile ba\u015flar), sekizlik (octal &#8211; 0 ile ba\u015flar) ve ikilik (binary &#8211; 0b ile ba\u015flar) formatlarda destekler.<\/p>\n<pre><code class=\"language-php\"><?php\n$yas = 30;         \/\/ Onluk (decimal)\n$urunKodu = 0xFF;  \/\/ Onalt\u0131l\u0131k (hexadecimal) - 255'e e\u015fittir\n$izinler = 0755;   \/\/ Sekizlik (octal) - 493'e e\u015fittir\n$bayrak = 0b1010;  \/\/ \u0130kilik (binary) - 10'a e\u015fittir\n\necho \"Ya\u015f: \" . $yas . \"<br>\";\necho \"\u00dcr\u00fcn Kodu (Decimal): \" . $urunKodu . \"<br>\";\necho \"\u0130zinler (Decimal): \" . $izinler . \"<br>\";\necho \"Bayrak (Decimal): \" . $bayrak . \"<br>\";\n\nvar_dump($yas); \/\/ int(30)\n?>\n<\/code><\/pre>\n<h4>Ondal\u0131kl\u0131 Say\u0131lar (Floats \/ Doubles)<\/h4>\n<p>Ondal\u0131kl\u0131 say\u0131lar, ondal\u0131k k\u0131sm\u0131 olan say\u0131lard\u0131r. Bunlara kayan noktal\u0131 say\u0131lar (floating-point numbers) veya \u00e7ift duyarl\u0131kl\u0131 say\u0131lar (doubles) da denir. PHP&#8217;de bu iki terim birbirinin yerine kullan\u0131l\u0131r. Ondal\u0131kl\u0131 say\u0131lar, tam say\u0131lardan \u00e7ok daha geni\u015f bir aral\u0131\u011f\u0131 ve hassasiyeti temsil edebilir, ancak belirli bir hassasiyetle s\u0131n\u0131rl\u0131d\u0131rlar (genellikle 14-15 basamak). Ondal\u0131kl\u0131 say\u0131larla \u00e7al\u0131\u015f\u0131rken hassasiyet kay\u0131plar\u0131na dikkat etmek \u00f6nemlidir.<\/p>\n<pre><code class=\"language-php\"><?php\n$fiyat = 19.99;\n$pi = 3.14159;\n$buyukSayi = 1.234e5; \/\/ 123400.0 (bilimsel g\u00f6sterim)\n\necho \"Fiyat: \" . $fiyat . \"<br>\";\necho \"Pi: \" . $pi . \"<br>\";\necho \"B\u00fcy\u00fck Say\u0131: \" . $buyukSayi . \"<br>\";\n\nvar_dump($fiyat); \/\/ float(19.99)\n?>\n<\/code><\/pre>\n<h4>Say\u0131sal Dizeler (Numeric Strings)<\/h4>\n<p>PHP, esnek bir dil oldu\u011fu i\u00e7in bazen say\u0131sal de\u011ferler dizeler (string) olarak gelebilir (\u00f6rne\u011fin, form girdileri veya veritaban\u0131 sonu\u00e7lar\u0131). PHP, bu t\u00fcr dizeleri otomatik olarak say\u0131ya d\u00f6n\u00fc\u015ft\u00fcrmeye \u00e7al\u0131\u015f\u0131r. Bu, \u00e7o\u011fu zaman kullan\u0131\u015fl\u0131 olsa da, beklenmedik sonu\u00e7lara yol a\u00e7abilir.<\/p>\n<pre><code class=\"language-php\"><?php\n$sayiString = \"123\";\n$toplam = $sayiString + 7; \/\/ PHP \"123\"\u00fc otomatik olarak say\u0131ya d\u00f6n\u00fc\u015ft\u00fcr\u00fcr\n\necho \"Toplam: \" . $toplam . \"<br>\"; \/\/ \u00c7\u0131kt\u0131: 130\n\n$karisikString = \"10 elma\";\n$sonuc = $karisikString + 5; \/\/ PHP \"10\"u al\u0131r, \" elma\" k\u0131sm\u0131n\u0131 g\u00f6rmezden gelir.\n                             \/\/ Bu bir uyar\u0131 (E_WARNING) verebilir.\n\necho \"Sonu\u00e7: \" . $sonuc . \"<br>\"; \/\/ \u00c7\u0131kt\u0131: 15\n?>\n<\/code><\/pre>\n<p>Bir de\u011fi\u015fkenin say\u0131sal bir de\u011fer olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in <code>is_numeric()<\/code>, <code>is_int()<\/code> (veya <code>is_integer()<\/code>), <code>is_float()<\/code> (veya <code>is_double()<\/code>) gibi fonksiyonlar\u0131 kullanabilirsiniz.<\/p>\n<pre><code class=\"language-php\"><?php\n$a = 10;\n$b = 10.5;\n$c = \"20\";\n$d = \"hello\";\n\necho \"a is_int: \" . (is_int($a) ? 'true' : 'false') . \"<br>\";     \/\/ true\necho \"b is_float: \" . (is_float($b) ? 'true' : 'false') . \"<br>\";   \/\/ true\necho \"c is_numeric: \" . (is_numeric($c) ? 'true' : 'false') . \"<br>\"; \/\/ true\necho \"d is_numeric: \" . (is_numeric($d) ? 'true' : 'false') . \"<br>\"; \/\/ false\n?>\n<\/code><\/pre>\n<h3>Temel Aritmetik \u0130\u015flemler ve Operat\u00f6rler<\/h3>\n<p>PHP, t\u00fcm temel aritmetik i\u015flemleri destekler. Bu i\u015flemler, matematiksel hesaplamalar yapmak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<ul>\n<li><b>Toplama (<code>+<\/code>):<\/b> \u0130ki say\u0131y\u0131 toplar.<\/li>\n<li><b>\u00c7\u0131karma (<code>-<\/code>):<\/b> Bir say\u0131dan di\u011ferini \u00e7\u0131kar\u0131r.<\/li>\n<li><b>\u00c7arpma (<code>*<\/code>):<\/b> \u0130ki say\u0131y\u0131 \u00e7arpar.<\/li>\n<li><b>B\u00f6lme (<code>\/<\/code>):<\/b> Bir say\u0131y\u0131 di\u011ferine b\u00f6ler. Sonu\u00e7 her zaman bir float olur, tam say\u0131 olsa bile (\u00f6rne\u011fin 10\/2 = 5.0).<\/li>\n<li><b>Mod alma (<code>%<\/code>):<\/b> B\u00f6lme i\u015fleminden kalan\u0131 verir. Sadece tam say\u0131lar i\u00e7in ge\u00e7erlidir.<\/li>\n<li><b>\u00dcs alma (<code><em><\/em><\/code>):<\/b> Bir say\u0131n\u0131n di\u011fer bir say\u0131n\u0131n kuvvetini al\u0131r (PHP 5.6+).<\/li>\n<\/ul>\n<pre><code class=\"language-php\"><?php\n$x = 10;\n$y = 3;\n\necho \"Toplama (x + y): \" . ($x + $y) . \"<br>\";  \/\/ 13\necho \"\u00c7\u0131karma (x - y): \" . ($x - $y) . \"<br>\";  \/\/ 7\necho \"\u00c7arpma (x <em> y): \" . ($x <\/em> $y) . \"<br>\";  \/\/ 30\necho \"B\u00f6lme (x \/ y): \" . ($x \/ $y) . \"<br>\";  \/\/ 3.3333333333333\necho \"Mod Alma (x % y): \" . ($x % $y) . \"<br>\"; \/\/ 1 (10'un 3'e b\u00f6l\u00fcm\u00fcnden kalan)\necho \"\u00dcs Alma (x <strong> y): \" . ($x <\/strong> $y) . \"<br>\"; \/\/ 1000 (10 \u00fczeri 3)\n\n\/\/ Atama operat\u00f6rleriyle birlikte kullan\u0131m\u0131\n$sayac = 5;\n$sayac += 3; \/\/ $sayac = $sayac + 3; yani 8\necho \"Sayac: \" . $sayac . \"<br>\";\n\n$fiyat = 100;\n$fiyat *= 1.20; \/\/ %20 zam\necho \"Yeni Fiyat: \" . $fiyat . \"<br>\"; \/\/ 120\n?>\n<\/code><\/pre>\n<p>\u0130\u015flem \u00f6nceli\u011fi, matematikteki standart kurallara uyar (parantezler, \u00fcs alma, \u00e7arpma\/b\u00f6lme\/mod alma, toplama\/\u00e7\u0131karma). Parantezler kullanarak i\u015flem s\u0131ras\u0131n\u0131 de\u011fi\u015ftirebilirsiniz.<\/p>\n<h3>Say\u0131sal Fonksiyonlar ve Bi\u00e7imlendirme<\/h3>\n<p>PHP, say\u0131larla \u00e7al\u0131\u015fmay\u0131 kolayla\u015ft\u0131ran bir\u00e7ok yerle\u015fik fonksiyona sahiptir.<\/p>\n<h4>Yuvarlama Fonksiyonlar\u0131<\/h4>\n<ul>\n<li><code>round(float $number, int $precision = 0, int $mode = PHP_ROUND_HALF_UP): float<\/code>: Bir say\u0131y\u0131 en yak\u0131n tam say\u0131ya veya belirtilen ondal\u0131k basama\u011fa yuvarlar.<\/li>\n<li><code>ceil(float $number): float<\/code>: Bir say\u0131y\u0131 her zaman yukar\u0131 (bir sonraki en b\u00fcy\u00fck tam say\u0131ya) yuvarlar.<\/li>\n<li><code>floor(float $number): float<\/code>: Bir say\u0131y\u0131 her zaman a\u015fa\u011f\u0131 (bir \u00f6nceki en k\u00fc\u00e7\u00fck tam say\u0131ya) yuvarlar.<\/li>\n<\/ul>\n<pre><code class=\"language-php\"><?php\n$deger = 3.4;\n$deger2 = 3.6;\n$deger3 = 3.5;\n$deger4 = 3.14159;\n\necho \"round(3.4): \" . round($deger) . \"<br>\";             \/\/ 3\necho \"round(3.6): \" . round($deger2) . \"<br>\";            \/\/ 4\necho \"round(3.5): \" . round($deger3) . \"<br>\";            \/\/ 4 (varsay\u0131lan: yar\u0131y\u0131 yukar\u0131 yuvarla)\necho \"ceil(3.4): \" . ceil($deger) . \"<br>\";               \/\/ 4\necho \"floor(3.6): \" . floor($deger2) . \"<br>\";             \/\/ 3\necho \"round(3.14159, 2): \" . round($deger4, 2) . \"<br>\"; \/\/ 3.14\n?>\n<\/code><\/pre>\n<h4>Di\u011fer Faydal\u0131 Fonksiyonlar<\/h4>\n<ul>\n<li><code>abs(mixed $number): number<\/code>: Bir say\u0131n\u0131n mutlak de\u011ferini d\u00f6nd\u00fcr\u00fcr.<\/li>\n<li><code>min(array|mixed ...$values): mixed<\/code>: Bir dizi i\u00e7indeki veya arg\u00fcman olarak verilen en k\u00fc\u00e7\u00fck de\u011feri bulur.<\/li>\n<li><code>max(array|mixed ...$values): mixed<\/code>: Bir dizi i\u00e7indeki veya arg\u00fcman olarak verilen en b\u00fcy\u00fck de\u011feri bulur.<\/li>\n<li><code>rand(int $min = 0, int $max = getrandmax()): int<\/code>: Belirli bir aral\u0131kta rastgele bir tam say\u0131 \u00fcretir.<\/li>\n<li><code>mt_rand(int $min = 0, int $max = mt_getrandmax()): int<\/code>: <code>rand()<\/code>&#8216;den daha h\u0131zl\u0131 ve daha iyi rastgele say\u0131lar \u00fcreten Mersenne Twister algoritmas\u0131n\u0131 kullan\u0131r. Genellikle tercih edilir.<\/li>\n<\/ul>\n<pre><code class=\"language-php\"><?php\necho \"abs(-10): \" . abs(-10) . \"<br>\"; \/\/ 10\necho \"min(5, 2, 8): \" . min(5, 2, 8) . \"<br>\"; \/\/ 2\necho \"max([1, 9, 3]): \" . max([1, 9, 3]) . \"<br>\"; \/\/ 9\necho \"Rastgele say\u0131 (1-100): \" . mt_rand(1, 100) . \"<br>\";\n?>\n<\/code><\/pre>\n<h4>Say\u0131lar\u0131 Bi\u00e7imlendirme<\/h4>\n<p>Kullan\u0131c\u0131lara g\u00f6sterilecek say\u0131lar\u0131 okunabilir bir formata getirmek \u00f6nemlidir. <code>number_format()<\/code> fonksiyonu bu i\u015f i\u00e7in idealdir.<\/p>\n<ul>\n<li><code>number_format(float $number, int $decimals = 0, string $decimal_separator = \".\", string $thousands_separator = \",\"): string<\/code>: Bir say\u0131y\u0131 binlik ayra\u00e7lar\u0131 ve ondal\u0131k basamaklar\u0131 ile bi\u00e7imlendirir.<\/li>\n<\/ul>\n<pre><code class=\"language-php\"><?php\n$buyukFiyat = 12345.6789;\n\necho \"Varsay\u0131lan: \" . number_format($buyukFiyat) . \"<br>\"; \/\/ 12,346 (yuvarlar)\necho \"2 ondal\u0131k basamak: \" . number_format($buyukFiyat, 2) . \"<br>\"; \/\/ 12,345.68\necho \"T\u00fcrk\u00e7e format: \" . number_format($buyukFiyat, 2, ',', '.') . \"<br>\"; \/\/ 12.345,68\necho \"Para birimi: \" . number_format($buyukFiyat, 2, ',', '.') . \" TL<br>\"; \/\/ 12.345,68 TL\n?>\n<\/code><\/pre>\n<h4>Tip D\u00f6n\u00fc\u015f\u00fcm\u00fc<\/h4>\n<p>Bir de\u011fi\u015fkenin tipini a\u00e7\u0131k\u00e7a say\u0131sal bir tipe d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in <code>(int)<\/code>, <code>(float)<\/code> veya <code>intval()<\/code>, <code>floatval()<\/code> fonksiyonlar\u0131n\u0131 kullanabilirsiniz.<\/p>\n<pre><code class=\"language-php\"><?php\n$stringSayi = \"42\";\n$floatSayi = 15.75;\n\n$intDeger = (int) $stringSayi;   \/\/ 42\n$floatDeger = (float) $stringSayi; \/\/ 42.0\n$intDeger2 = intval($floatSayi); \/\/ 15 (ondal\u0131k k\u0131sm\u0131 atar)\n$floatDeger2 = floatval($stringSayi); \/\/ 42.0\n\nvar_dump($intDeger, $floatDeger, $intDeger2, $floatDeger2);\n?>\n<\/code><\/pre>\n<h3>Ondal\u0131kl\u0131 Say\u0131larla \u00c7al\u0131\u015f\u0131rken Dikkat Edilmesi Gerekenler ve Hassasiyet<\/h3>\n<p>Ondal\u0131kl\u0131 say\u0131larla \u00e7al\u0131\u015f\u0131rken en \u00f6nemli konulardan biri hassasiyet sorunlar\u0131d\u0131r. Bilgisayarlar, ondal\u0131kl\u0131 say\u0131lar\u0131 ikili sistemde (binary) temsil eder ve baz\u0131 ondal\u0131k say\u0131lar (\u00f6rne\u011fin 0.1), ikili sistemde tam olarak temsil edilemez. Bu durum, k\u00fc\u00e7\u00fck yuvarlama hatalar\u0131na yol a\u00e7abilir ve \u00f6zellikle finansal uygulamalarda ciddi sorunlara neden olabilir.<\/p>\n<h4>Hassasiyet Kay\u0131plar\u0131<\/h4>\n<pre><code class=\"language-php\"><?php\n$a = 0.1;\n$b = 0.7;\n$c = $a + $b; \/\/ Matematiksel olarak 0.8 olmal\u0131\n\necho \"0.1 + 0.7 = \" . $c . \"<br>\"; \/\/ \u00c7\u0131kt\u0131: 0.7999999999999999\n?>\n<\/code><\/pre>\n<p>Yukar\u0131daki \u00f6rnekte g\u00f6r\u00fcld\u00fc\u011f\u00fc gibi, basit bir toplama i\u015flemi bile beklenmedik bir sonu\u00e7 verebilir. Bu, float t\u00fcr\u00fcndeki say\u0131lar\u0131n IEEE 754 standard\u0131na g\u00f6re saklanmas\u0131ndan kaynaklan\u0131r.<\/p>\n<h4>Kar\u015f\u0131la\u015ft\u0131rma Problemleri<\/h4>\n<p>Bu hassasiyet sorunlar\u0131, ondal\u0131kl\u0131 say\u0131lar\u0131 do\u011frudan <code>==<\/code> operat\u00f6r\u00fcyle kar\u015f\u0131la\u015ft\u0131r\u0131rken de sorunlara yol a\u00e7ar.<\/p>\n<pre><code class=\"language-php\"><?php\n$x = 0.1 + 0.7;\n$y = 0.8;\n\nif ($x == $y) {\n    echo \"E\u015fitler! (Beklenmedik)<br>\";\n} else {\n    echo \"E\u015fit de\u011filler! (Beklenen)<br>\"; \/\/ Bu \u00e7\u0131kt\u0131 al\u0131n\u0131r\n}\n?>\n<\/code><\/pre>\n<p>Bu t\u00fcr durumlar\u0131 \u00e7\u00f6zmek i\u00e7in, say\u0131lar\u0131 do\u011frudan e\u015fitlik yerine belirli bir &#8220;epsilon&#8221; (\u00e7ok k\u00fc\u00e7\u00fck bir tolerans de\u011feri) kullanarak kar\u015f\u0131la\u015ft\u0131rmak daha g\u00fcvenlidir.<\/p>\n<pre><code class=\"language-php\"><?php\n$x = 0.1 + 0.7;\n$y = 0.8;\n$epsilon = 0.00001; \/\/ K\u00fc\u00e7\u00fck bir tolerans de\u011feri\n\nif (abs($x - $y) < $epsilon) {\n    echo \"E\u015fit kabul edilebilirler.&lt;br&gt;\"; \/\/ Bu \u00e7\u0131kt\u0131 al\u0131n\u0131r\n} else {\n    echo \"E\u015fit de\u011filler.&lt;br&gt;\";\n}\n?&gt;\n<\/code><\/pre>\n<h4>Finansal \u0130\u015flemler ve B\u00fcy\u00fck Say\u0131lar i\u00e7in BCMath ve GMP<\/h4>\n<p>E\u011fer y\u00fcksek hassasiyet gerektiren (\u00f6rne\u011fin finansal hesaplamalar) veya \u00e7ok b\u00fcy\u00fck tam say\u0131larla (standart integer limitlerini a\u015fan) \u00e7al\u0131\u015fman\u0131z gerekiyorsa, PHP'nin yerle\u015fik BCMath (Binary Calculator) veya GMP (GNU Multiple Precision) uzant\u0131lar\u0131n\u0131 kullanmal\u0131s\u0131n\u0131z.<\/p>\n<ul>\n<li><b>BCMath:<\/b> Keyfi hassasiyette ondal\u0131kl\u0131 say\u0131larla i\u015flem yapman\u0131z\u0131 sa\u011flar. T\u00fcm i\u015flemler dize (string) olarak yap\u0131l\u0131r, bu da hassasiyet kayb\u0131n\u0131 \u00f6nler. Fonksiyonlar genellikle <code>bcadd()<\/code>, <code>bcsub()<\/code>, <code>bcmul()<\/code>, <code>bcdiv()<\/code>, <code>bcmod()<\/code>, <code>bcpow()<\/code> \u015feklindedir ve bir hassasiyet (scale) parametresi al\u0131rlar.<\/li>\n<li><b>GMP:<\/b> \u00c7ok b\u00fcy\u00fck tam say\u0131larla i\u015flem yapmak i\u00e7in tasarlanm\u0131\u015ft\u0131r. Integer limitlerini a\u015fan say\u0131larla \u00e7al\u0131\u015fmak i\u00e7in idealdir.<\/li>\n<\/ul>\n<pre><code class=\"language-php\"><?php\n\/\/ BCMath \u00f6rne\u011fi\n$a = '0.1';\n$b = '0.7';\n$c = bcadd($a, $b, 2); \/\/ 2 ondal\u0131k basamak hassasiyetle toplama\n\necho \"BCMath ile 0.1 + 0.7 = \" . $c . \"<br>\"; \/\/ \u00c7\u0131kt\u0131: 0.80\n\n$fiyat1 = '123456789.12';\n$fiyat2 = '987654321.98';\n$toplamFiyat = bcadd($fiyat1, $fiyat2, 2);\necho \"B\u00fcy\u00fck fiyatlar\u0131n toplam\u0131: \" . $toplamFiyat . \"<br>\"; \/\/ 1111111111.10\n\n\/\/ GMP \u00f6rne\u011fi (\u00e7ok b\u00fcy\u00fck tam say\u0131lar i\u00e7in)\n\/\/ E\u011fer GMP y\u00fckl\u00fc de\u011filse hata verir.\nif (extension_loaded('gmp')) {\n    $buyukSayi1 = gmp_init(\"12345678901234567890\");\n    $buyukSayi2 = gmp_init(\"98765432109876543210\");\n    $toplamGMP = gmp_add($buyukSayi1, $buyukSayi2);\n    echo \"GMP ile b\u00fcy\u00fck say\u0131lar\u0131n toplam\u0131: \" . gmp_strval($toplamGMP) . \"<br>\";\n} else {\n    echo \"GMP uzant\u0131s\u0131 y\u00fckl\u00fc de\u011fil.<br>\";\n}\n?>\n<\/code><\/pre>\n<h3>Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<p>PHP'de say\u0131larla \u00e7al\u0131\u015fmak, do\u011fru ara\u00e7lar\u0131 ve yakla\u015f\u0131mlar\u0131 bildi\u011finizde olduk\u00e7a kolayd\u0131r. Tam say\u0131lar ve ondal\u0131kl\u0131 say\u0131lar aras\u0131ndaki farklar\u0131 anlamak, temel aritmetik operat\u00f6rleri ve say\u0131sal fonksiyonlar\u0131 kullanmak, \u00e7o\u011fu senaryo i\u00e7in yeterlidir. Ancak, ondal\u0131kl\u0131 say\u0131lar\u0131n do\u011fas\u0131nda bulunan hassasiyet sorunlar\u0131n\u0131 g\u00f6z \u00f6n\u00fcnde bulundurmak ve finansal veya bilimsel hesaplamalar gibi kritik durumlarda BCMath veya GMP gibi uzant\u0131lara ba\u015fvurmak hayati \u00f6nem ta\u015f\u0131r.<\/p>\n<h4>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h4>\n<p><b>S1: PHP'de bir say\u0131n\u0131n tam say\u0131 m\u0131 yoksa ondal\u0131kl\u0131 say\u0131 m\u0131 oldu\u011funu nas\u0131l anlar\u0131m?<\/b><br \/>\n<b>C1:<\/b> <code>is_int()<\/code> ve <code>is_float()<\/code> fonksiyonlar\u0131n\u0131 kullanabilirsiniz. Ayr\u0131ca <code>var_dump()<\/code> fonksiyonu de\u011fi\u015fkenin tipini ve de\u011ferini detayl\u0131 olarak g\u00f6sterir.<\/p>\n<p><b>S2: Bir string'i say\u0131ya d\u00f6n\u00fc\u015ft\u00fcrmenin en g\u00fcvenli yolu nedir?<\/b><br \/>\n<b>C2:<\/b> E\u011fer bir string'in sadece say\u0131sal bir de\u011feri temsil etti\u011finden eminseniz, <code>(int)<\/code> veya <code>(float)<\/code> tip d\u00f6n\u00fc\u015f\u00fcm\u00fcn\u00fc kullanabilirsiniz. <code>intval()<\/code> veya <code>floatval()<\/code> fonksiyonlar\u0131 da ayn\u0131 i\u015fi yapar. Ancak, string'in ger\u00e7ekten say\u0131sal olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in \u00f6ncelikle <code>is_numeric()<\/code> kullanmak iyi bir pratiktir.<\/p>\n<p><b>S3: PHP'de rastgele say\u0131 \u00fcretirken <code>rand()<\/code> yerine neden <code>mt_rand()<\/code> kullanmal\u0131y\u0131m?<\/b><br \/>\n<b>C3:<\/b> <code>mt_rand()<\/code> fonksiyonu, Mersenne Twister algoritmas\u0131n\u0131 kullan\u0131r ve <code>rand()<\/code>'den \u00e7ok daha h\u0131zl\u0131d\u0131r, ayr\u0131ca daha iyi kalitede (daha az tahmin edilebilir) rastgele say\u0131lar \u00fcretir. Bu nedenle, genellikle <code>mt_rand()<\/code> tercih edilir.<\/p>\n<p><b>S4: Finansal hesaplamalar yaparken PHP'de ondal\u0131kl\u0131 say\u0131 hassasiyet sorunlar\u0131n\u0131 nas\u0131l \u00f6nleyebilirim?<\/b><br \/>\n<b>C4:<\/b> Finansal veya y\u00fcksek hassasiyet gerektiren hesaplamalar i\u00e7in PHP'nin yerle\u015fik <code>BCMath<\/code> uzant\u0131s\u0131n\u0131 kullanmal\u0131s\u0131n\u0131z. <code>bcadd()<\/code>, <code>bcsub()<\/code>, <code>bcmul()<\/code> gibi fonksiyonlar, say\u0131lar\u0131 string olarak i\u015fleyerek istedi\u011finiz hassasiyeti koruman\u0131za olanak tan\u0131r.<\/p>\n<p><b>S5: PHP'de \u00e7ok b\u00fcy\u00fck tam say\u0131larla \u00e7al\u0131\u015fmak i\u00e7in ne yapmal\u0131y\u0131m?<\/b><br \/>\n<b>C5:<\/b> PHP'nin standart <code>int<\/code> t\u00fcr\u00fc belirli bir limitin \u00fczerinde say\u0131lar\u0131 tutamaz. Bu durumda, <code>GMP<\/code> (GNU Multiple Precision) uzant\u0131s\u0131n\u0131 kullanmal\u0131s\u0131n\u0131z. GMP, keyfi b\u00fcy\u00fckl\u00fckteki tam say\u0131larla i\u015flem yapman\u0131z\u0131 sa\u011flar.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"PHP&#8217;de Say\u0131larla \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber\nPHP, web uygulamalar\u0131 geli\u015ftirmede en pop\u00fcler dillerden biridir ve hemen hemen her uygulamad","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[133],"tags":[],"class_list":{"0":"post-37502","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-php","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>PHP&#039;de Say\u0131larla \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/phpde-sayilarla-calismak-kapsamli-bir-rehber\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PHP&#039;de Say\u0131larla \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber\" \/>\n<meta property=\"og:description\" content=\"PHP&#039;de Say\u0131larla \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber PHP, web uygulamalar\u0131 geli\u015ftirmede en pop\u00fcler dillerden biridir ve hemen hemen her uygulamad\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/phpde-sayilarla-calismak-kapsamli-bir-rehber\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-06T16:41:35+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/phpde-sayilarla-calismak-kapsamli-bir-rehber\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/phpde-sayilarla-calismak-kapsamli-bir-rehber\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"PHP&#8217;de Say\u0131larla \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber\",\"datePublished\":\"2026-01-06T16:41:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/phpde-sayilarla-calismak-kapsamli-bir-rehber\/\"},\"wordCount\":1349,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"PHP\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/phpde-sayilarla-calismak-kapsamli-bir-rehber\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/phpde-sayilarla-calismak-kapsamli-bir-rehber\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/phpde-sayilarla-calismak-kapsamli-bir-rehber\/\",\"name\":\"PHP'de Say\u0131larla \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-06T16:41:35+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/phpde-sayilarla-calismak-kapsamli-bir-rehber\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/phpde-sayilarla-calismak-kapsamli-bir-rehber\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/phpde-sayilarla-calismak-kapsamli-bir-rehber\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PHP&#8217;de Say\u0131larla \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PHP'de Say\u0131larla \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/phpde-sayilarla-calismak-kapsamli-bir-rehber\/","og_locale":"tr_TR","og_type":"article","og_title":"PHP'de Say\u0131larla \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber","og_description":"PHP'de Say\u0131larla \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber PHP, web uygulamalar\u0131 geli\u015ftirmede en pop\u00fcler dillerden biridir ve hemen hemen her uygulamad","og_url":"https:\/\/fatihsoysal.com\/blog\/phpde-sayilarla-calismak-kapsamli-bir-rehber\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-06T16:41:35+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"4 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/phpde-sayilarla-calismak-kapsamli-bir-rehber\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/phpde-sayilarla-calismak-kapsamli-bir-rehber\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"PHP&#8217;de Say\u0131larla \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber","datePublished":"2026-01-06T16:41:35+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/phpde-sayilarla-calismak-kapsamli-bir-rehber\/"},"wordCount":1349,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["PHP"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/phpde-sayilarla-calismak-kapsamli-bir-rehber\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/phpde-sayilarla-calismak-kapsamli-bir-rehber\/","url":"https:\/\/fatihsoysal.com\/blog\/phpde-sayilarla-calismak-kapsamli-bir-rehber\/","name":"PHP'de Say\u0131larla \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-06T16:41:35+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/phpde-sayilarla-calismak-kapsamli-bir-rehber\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/phpde-sayilarla-calismak-kapsamli-bir-rehber\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/phpde-sayilarla-calismak-kapsamli-bir-rehber\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"PHP&#8217;de Say\u0131larla \u00c7al\u0131\u015fmak: Kapsaml\u0131 Bir Rehber"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37502","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=37502"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37502\/revisions"}],"predecessor-version":[{"id":37503,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37502\/revisions\/37503"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=37502"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=37502"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=37502"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}