Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

rakamları harf olarak yazdırmak


cempostaci

Öne çıkan mesajlar

textboxa girileni butona tıklayınca labelda harf olarak yazdırmayı yaptım bi şekilde ama saçmalıyor :)
zaten yeniyim dalga geçmeyin
her neyse saçmaladığı kısım genelde 36 milyon yazdığımda 30 milyon 6 milyon gibi sonuçlar çıkartıyor.
yanlış bir yöntem ile yapmışım muhtemelen gereksiz uzatmışım vs.
bana doğru yöntemi yazacak bir babayiğit var mı acaba ?

benim kodlarım şöyle
çok uzamaması için almadım her yeri


int sayi, birler, onlar, yuzler;
sayi = Convert.ToInt32(txt1.Text);


if (sayi == 0) lbl1.Text = "Sıfır";

birler = sayi % 10;
onlar = (sayi / 10) % 10;
yuzler = (sayi / 100) % 10;





string[] birlik = { "", "Bir", "İki", "Üç", "Dört", "Beş", "Altı", "Yedi", "Sekiz", "Dokuz" };
string[] onluk = { "", "On", "Yirmi", "Otuz", "Kırk", "Elli", "Altmış", "Yetmiş", "Seksen", "Doksan" };
string[] yuzluk = { "", "Yüz", "İki Yüz", "Üç Yüz", "Dört Yüz", "Beş Yüz", "Altı Yüz", "Yedi Yüz", "Sekiz Yüz", "Dokuz Yüz" };


lbl1.Text = yuzluk[yuzler] + " " + onluk[onlar] + " " + birlik[birler];

Link to comment
Sosyal ağlarda paylaş

log kullanak türkçe yazdırak

178621 misal
türkçe işkilli dil, ona göre ayarlamak lazım.

yani konuşurken aslında biz kafada ayırıp birleştirioz ya, öle yaapalım

yüz yetmiş sekiz "bin" altı yüz yirmi bir

fak
bi gireyim dedimde mesai bitiyor. ama basitce
log10 kullanıp 6 basamaklığını oldugunu bulup
sonra her 3 basamakta bir ( bin bin ayırıyoruz biz çünkü ) okutucan
yani 178621 dimi
178621 - 100000 yapıcan bi 78621 kalıcak. /1000 e bölüp inte cast edicen 78 kalıcak
onuda 70 ve 8 diye ayırıcan
sora bi arrayin olucak, buna yüz,yetmiş,sekiz i atayacan burdan döndürüp.

sora 3 basamakta bir ayrdık ya yanına bin koyucan
178bin olcak bu meret.
621 de aynı şekilde ama bin olmıcak

hmmm
aslıdna evet lan bit 3 lü 3lü yapıyoruz, yani 3 basamaklı bişeyi okutabilirsen, ondan sonraki her 3 basamaka sadece bin,yüzbin,milyon falan ekleterek basitçe devam edebilirsin.
Link to comment
Sosyal ağlarda paylaş

burdan şeyedebilirsin

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);
}
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...