Skip to content

PHP ile Her Zaman Alt veya Üst Değere Yuvarlama

PHP’nin round() fonksiyonunda 4 tane özellik belirtebiliyorsunuz. Bunlar PHP_ROUND_HALF_UP, PHP_ROUND_HALF_DOWN, PHP_ROUND_HALF_EVEN, PHP_ROUND_HALF_ODD dur. Bu özelliklerle buçuklu ifadeleri bir üste veya bir alta yuvarlayabildiğiniz gibi bir sonra ki tek veya çift rakama da yuvarlayabiliyorsunuz.

Fakat biz verilen sayının her zaman alt değere veya üst değere yuvarlanmasını istersek bunu sağlamıyor. Yani 1.444 sayısını 1.45 yuvarlamak isteseniz bunu tek başına round() fonksiyonunu kullanarak yuvarlayamazsınız. round() fonksiyonu bu sayıyı 1.44’e yuvarlayacaktır.

Size hazırladığım aşağıdaki fonksiyonu inceleyiniz. Detaylı açıklamalar kodlar içinde yapılmıştır:

<?php
/**
 * Sayıları tek yönde yuvarlama
 * Üste veya aşağı
 */
function round_tr($sayi, $nereye, $ondalik = 2){
    $o = (int) str_pad('1', $ondalik, '0');
    if($nereye == "up")
        return (ceil($sayi * $o) / $o);
    elseif($nereye == "down")
        return (floor($sayi * $o) / $o);
    else
        return "Üste mi yuvarlayacağız, alta mı?";
}

// Kullanımı
echo round_tr(1.4424, "up", 2);    // Çıktısı: 1.45
echo round_tr(1.4424, "down", 2);  // Çıktısı: 1.44
echo round_tr(1.4424, "down", 1);  // Çıktısı: 1.4
echo round_tr(1.4424, "up", 3);    // Çıktısı: 1.443


?>

İşinize yaraması dileğiyle,

TR Kodlama GitHub'da!

TR Kodlama'da yer alan makaleleri GitHub üzerinden düzenleyebileceğinizi biliyor muyudunuz? Harika değil mi? Bu makale ile ilgili düzenleme yapmak isterseniz aşağıdaki butona tıklayınız!

GitHub'da Görüntüle ve Düzenle!