<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/language.types.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'tr',
  ),
  'this' => 
  array (
    0 => 'language.types.float.php',
    1 => 'float',
    2 => 'float',
  ),
  'up' => 
  array (
    0 => 'language.types.php',
    1 => 'T&uuml;rler',
  ),
  'prev' => 
  array (
    0 => 'language.types.integer.php',
    1 => 'int',
  ),
  'next' => 
  array (
    0 => 'language.types.string.php',
    1 => 'string',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'tr',
    'path' => 'language/types/float.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="language.types.float" class="sect1">
 <h2 class="title">float</h2>

 <p class="para">
  Gerçek sayılar (veya kayan noktalı sayılar) şu sözdizimleri ile
  belirtilebilir:
 </p>

 <div class="informalexample">
  <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$a </span><span style="color: #007700">= </span><span style="color: #0000BB">1.234</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$b </span><span style="color: #007700">= </span><span style="color: #0000BB">1.2e3</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$c </span><span style="color: #007700">= </span><span style="color: #0000BB">7E-10</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$d </span><span style="color: #007700">= </span><span style="color: #0000BB">1_234.567</span><span style="color: #007700">; </span><span style="color: #FF8000">// PHP 7.4.0 ve sonrası<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
  </div>

 </div>

 <p class="para">
  Biçimsel olarak PHP 7.4.0 ve sonrasında (öncesinde altçizgilere izin
  verilmezdi):
 </p>

 <div class="informalexample">
  <div class="example-contents">
<div class="cdata"><pre>
LNUM          [0-9]+(_[0-9]+)*
DNUM          ({LNUM}?&quot;.&quot;{LNUM}) | ({LNUM}&quot;.&quot;{LNUM}?)
EXPONENT_DNUM (({LNUM} | {DNUM}) [eE][+-]? {LNUM})
</pre></div>
  </div>

 </div>

 <p class="para">
  Bir gerçek sayının bellekte kapladığı genişlik platforma göre değişmekteyse
  de kabaca 14 hanelik bir hassasiyetle 1.8e308&#039;lik olası bir en büyük değer
  (64 bitlik IEEE biçemi) hepsi için sağlanır.
 </p>

 <div class="warning"><strong class="warning">Uyarı</strong>
  <h1 class="title">Kayan nokta hassasiyeti</h1>

  <p class="para">
   Kayan noktalı sayılar sınırlı bir hassasiyete sahiptir. Sisteme bağımlı
   olmakla birlikte PHP normalde (1.11e-16&#039;lık bir yuvarlamadan dolayı görece
   en büyük hatayı verecek olan) IEEE 754 çift hassasiyetli biçimi kullanır.
   4 temel işlemden daha karmaşık aritmetik işlemler daha büyük hatalar
   verebilir, dolayısıyla işlemler karmaşık hale gelmeye başlayınca hatanın
   açıklanması bir önkabul olarak ele alınmalıdır.
  </p>

  <p class="para">
   Ek olarak, <code class="literal">0.1</code> veya <code class="literal">0.7</code> gibi 10
   tabanında kayan noktalı sayılar olarak tamamiyle gösterilebilen gerçel
   sayılar, 2 tabanında kayan noktalı sayılar olarak tamamiyle gösterilemezler.
   Bu bakımdan, az da olsa bir kayıp olmaksızın dahili ikil
   karşılıklarına dönüştürülemezler. Bunun şöyle bir sonucu olur: örneğin,
   <code class="code">floor((0.1+0.7)*10)</code> işlevinden beklendiği gibi
   <code class="literal">8</code> değil, <code class="literal">7</code> döner; bunun sebebi
   dahili gösterimin aslında <code class="literal">7.9999999999999991118...</code> gibi
   bir değer olmasıdır.
  </p>

  <p class="para">
   Bu bakımdan, son ondalık hanesine bakarak sonucun ne olacağına karar
   verilemez, bu bakımdan kayan noktalı sayılar arasında asla eşitlik
   karşılaştırmaları yapılmaz. Eğer daha yüksek hassasiyet isteniyorsa <a href="ref.bc.php" class="link">keyfi hassasiyetli matematik işlevleri</a> ve <a href="ref.gmp.php" class="link">gmp</a> işlevleri kullanılabilir.
  </p>

  <p class="para">
   &quot;Basit&quot; bir açıklama için
   <a href="http://floating-point-gui.de/" class="link external">&raquo;&nbsp;kayan noktalı sayılar
   kılavuzuna</a> bakınız.
  </p>
 </div>

 <div class="sect2" id="language.types.float.casting">
  <h3 class="title"><code class="code">float</code> türüne dönüşüm</h3>

  <div class="sect3" id="language.types.float.casting.from-string">
   <h4 class="title">Dizelerden</h4>

   <p class="simpara">
    Dize <a href="language.types.numeric-strings.php" class="link">sayısal</a> veya
    öncü sayısal ise, karşılık gelen <span class="type"><a href="language.types.float.php" class="type float">float</a></span> değere çözümlenir,
    aksi takdirde sıfıra (<code class="literal">0</code>) dönüştürülür.
   </p>
  </div>

  <div class="sect3" id="language.types.float.casting.from-other">
   <h4 class="title">Diğer türlerden</h4>

   <p class="para">
    Diğer türlerdeki değerler için, dönüşüm, değerin önce <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>&#039;e 
    ardından <span class="type"><a href="language.types.float.php" class="type float">float</a></span>&#039;a dönüştürülmesiyle gerçekleştirilir. 
    Daha fazla bilgi için bkz. 
    <a href="language.types.integer.php#language.types.integer.casting" class="link"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> türüne
    dönüşüm</a>.
   </p>

   <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
    <p class="para">
     Belirli türlerin <span class="type"><a href="language.types.integer.php" class="type int">int</a></span> türüne dönüştürülürken tanımlanmamış
     davranışları olup, bu ayrıca <span class="type"><a href="language.types.float.php" class="type float">float</a></span> türüne dönüştürülürken de
     geçerlidir.
    </p>
   </p></blockquote>
  </div>
 </div>

 <div class="sect2" id="language.types.float.comparison">
  <h3 class="title">Kayan noktalı sayıların karşılaştırılması</h3>

  <p class="para">
   Yukarıdaki uyarıda kısaca değinildiği gibi kayan noktalı sayılar arasında
   eşitlik karşılaştırmaları, bunların dahili gösterimlerinden dolayı biraz
   sorunludur. Bununla birlikte, bu sınırlamaların aşılmasını ve kayan noktalı
   sayılar arasında karşılaştırma yapılmasını sağlayan yollar vardır.
  </p>

  <p class="para">
   Kayan noktalı değerlerin eşitliğini sınamak için yuvarlamadan dolayı ortaya
   çıkan göreli hatanın bir üst sınırı kullanılır. Bu değer makine epsilonu
   veya yuvarlama birimi olarak bilinir ve hesaplamalardaki kabul edilebilir en
   küçük farktır.
  </p>

  <div class="informalexample">
   <p class="simpara">
    <var class="varname">$a</var> ve <var class="varname">$b</var> 5 haneli hassasiyetle
    eşittir.
   </p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$a </span><span style="color: #007700">= </span><span style="color: #0000BB">1.23456789</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$b </span><span style="color: #007700">= </span><span style="color: #0000BB">1.23456780</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$epsilon </span><span style="color: #007700">= </span><span style="color: #0000BB">0.00001</span><span style="color: #007700">;<br /><br />if(</span><span style="color: #0000BB">abs</span><span style="color: #007700">(</span><span style="color: #0000BB">$a</span><span style="color: #007700">-</span><span style="color: #0000BB">$b</span><span style="color: #007700">) &lt; </span><span style="color: #0000BB">$epsilon</span><span style="color: #007700">) {<br />    echo </span><span style="color: #DD0000">"doğru"</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </div>

 <div class="sect2" id="language.types.float.nan">
  <h3 class="title">NaN</h3>
  <p class="para">
   Bazı sayısal işlemler <strong><code><a href="math.constants.php#constant.nan">NAN</a></code></strong> sabiti ile gösterilen bir
   değerle sonuçlanabilir. Bu sonuç, kayan noktalı hesaplamalarda
   tanımlanamayan veya gösterilemeyen bir değeri gösterir. Bu değerin, kendisi
   dahil herhangi bir değerle gevşek ya da sıkı bir karşılaştırması <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>
   sonucuna sebep olur.
  </p>
  <p class="para">
   <strong><code><a href="math.constants.php#constant.nan">NAN</a></code></strong> farklı değerdeki herhangi bir sayıyı temsil
   ettiğinden kendisi dahil fakat <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> hariç, başka bir değerle 
   karşılaştırılmamalı, bunun yerine değer <span class="function"><a href="function.is-nan.php" class="function">is_nan()</a></span> ile 
   sınanmalıdır.
  </p>
 </div>
</div><?php manual_footer($setup); ?>