"Enter"a basıp içeriğe geçin

PHP ile Rakamları Yazıyla Yazdırma Fonksiyonu

PHP ile rakamları yazıyla yazdırma fonksiyonu kullanarak, adı üstünde sayıyı basamaklarına ayırarak yazı ile yazdırıyoruz.

<?php
function yaziylasayi($sayi) { 
    $o = array( 
        'birlik' => array('bir', 'iki', 'üç', 'dört', 'beş', 'altı', 'yedi', 'sekiz', 'dokuz'), 
        'onluk' => array('on', 'yirmi', 'otuz', 'kırk', 'elli', 'altmış', 'yetmiş', 'seksen', 'doksan'), 
        'basamak' => array('yüz', 'bin', 'milyon', 'milyar', 'trilyon', 'katrilyon') 
    ); 
 
    // Sayıyı basamaklarına ayırıyoruz 
    $basamak = array_reverse(str_split(implode('', array_reverse(str_split($sayi))), 3)); 
 
    // Basamak sayısını belirliyoruz 
    $basamak_sayisi = count($basamak); 
 
    // Her basamak için: 
    for ($i=0; $i < $basamak_sayisi; ++$i) 
    { 
        // Sayıyı basamaklarına ayırdığımızda basamaklar tersine döndüğü için burada ufak bir işlem ile basamakları düzeltiyoruz 
        $basamak[$i] = implode(array_reverse(str_split($basamak[$i]))); 
         
        // Eğer basamak 4, 8, 15, 16, 23, 42 gibi 1 veya 2 rakamlıysa başına 3 rakama tamamlayacak şekilde "0" ekliyoruz ki foreach döngüsünde problem olmasın 
        if (strlen($basamak[$i]) == 1) 
            $basamak[$i] = '00' . $basamak[$i]; 
        elseif (strlen($basamak[$i]) == 2) 
            $basamak[$i] = '0' . $basamak[$i]; 
    } 
 
    $yenisayi = array(); 
 
    // Her basamak için: ($yenisayi değişkenine) 
    foreach ($basamak as $k => $b) 
    { 
        // basamağın ilk rakamı 0'dan büyük ise 
        if ($b[0] > 0) 
            // değişkene rakamın harfle yazılışı ve "yüz" ekliyoruz 
            $yenisayi[] = ($b[0] > 1 ? $o['birlik'][$b[0]-1] . ' ' : '') . $o['basamak'][0]; 
 
        // basamağın 2. rakamı 0'dan büyük ise 
        if ($b[1] > 0) 
            // değişkene rakamın harfle yazılışını ekliyoruz 
            $yenisayi[] = $o['onluk'][$b[1]-1]; 
 
        // basamağın 3. rakamı 0'dan büyük ise 
        if ($b[2] > 0) 
            // değişkene rakamın harfle yazılışını ekliyoruz 
            $yenisayi[] = $o['birlik'][$b[2]-1]; 
 
        // değişkene basamağın ismini (bin, milyon, milyar) ekliyoruz 
        if ($basamak_sayisi > 1) 
            $yenisayi[] = $o['basamak'][$basamak_sayisi-1]; 
 
        // Basamak sayısını azaltıyoruz ki her basamağın sonuna ilkinde ne yazıyorsa o yazılmasın 
        --$basamak_sayisi; 
    } 
     
    return implode(' ', $yenisayi); 
}
 
echo yaziylasayi('14659875468265470');
?>

Çıktı: on dört katrilyon altı yüz elli dokuz trilyon sekiz yüz yetmiş beş milyar dört yüz altmış sekiz milyon iki yüz altmış beş bin dört yüz yetmiş

Not: İstediğiniz gibi bir sayı girebilirsiniz tüm basamaklar tüm değerler girilmiştir. Dilediğiniz gibi fonksiyonu kullanabilir. Uygulama dahi geliştirebilirsiniz. Aklınıza takılan kod bloğunu açıklama kısmına yorum olarak yazmayı unutmayın!

Okuyucu Puanı
[Toplam: 0 Ortalama: 0]

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir