Text kutusuna sayı olarak girilen değerin yazı ile karşılığını yazdırma örneği;
Örnek kodumuzun çalışması şu şekildedir. 125 değerini text kutusuna girdiğimizi varsayalım. Div etiketi içine YüzYirmiBeş yazacaktır.
Örneğimiz için gerekli olan HTML kodları
<div class="kutu"> <input type="number" id="sayi" placeholder="Sayı Giriniz"> <div id="goster"> </div> </div>
Örneğimizin CSS kodları
<style> body { width: 80%; max-width: 1200px; margin: 40px auto; font: normal 14px/1.5 "Montserrat", "Helvetica Neue", sans-serif; background: #cfd8dc; color: #37474f; } .kutu{ background: whitesmoke; margin: 0 0 40px; box-shadow: 0px 2px 4px rgba(0,0,0,0.2); width:50%; } #sayi{ width: 90%; padding:10px 5%; border:none; outline: none; margin-bottom:10px; } #goster{ text-align: center; font-size: 1.5em; } </style>
Örneğin JavaScript Kodları 🙂
Not: Script içi olay kullandığım için script kodlarını yazarken body kapatma etiketinin hemen üzerin koymayı unutmayın. aksi durumda sayı etiketi tanınmayacaktır.
<script> /*not script dosyasını body kapatma etikeninin hemen üzerine yazınız.*/ var sayi= document.getElementById("sayi"); // input kutusunu //sayı kutusunda tuşa basıldığında sayi.onkeyup=function(){ var goster=document.getElementById("goster");//div etiketi var islem=new SayiDonustur(this.value); goster.innerHTML=islem.sonuc; } /*sayı gösterme işlemini yapacak sınıf*/ function SayiDonustur(sayi){ sayi=String(sayi); this.sonuc; let bolum1 = ["", "bir", "iki", "üç", "dört", "beş", "altı", "yedi", "sekiz", "dokuz"]; let bolum2 = ["", "on", "yirmi", "otuz", "kırk", "elli", "altmış", "yetmiş", "seksen", "doksan"]; let bolum3 = ["", "yüz", "bin", "milyon", "milyar", "trilyon", "katrilyon"]; let sayi1; //tam kısım let sayi2 = ""; // ondalıklı kısım let sonuc = ""; sayi = sayi.replace(",", "."); //virgül girilirse noktaya dönüştürülüyor if (sayi.indexOf(".") > 0) { // nokta varsa (kuruş) sayi1 = sayi.substring(0, sayi.indexOf(".")); // tam kısım sayi2 = sayi.substring(sayi.indexOf("."), sayi.length); // ondalıklı kısım } else { sayi1 = sayi; // ondalık yok } var rk = sayi1.split(""); // rakamlara ayırma let son; let w = 1; // işlenen basamak var sonaekle = 0; // binler on binler yüzbinler vs. için sona bin (milyon,trilyon...) eklenecek mi? let kac = rk.length; // kaç rakam var? let sonint; // işlenen basamağın rakamsal değeri let uclubasamak = 0; // hangi basamakta (birler onlar yüzler gibi) let artan = 0; // binler milyonlar milyarlar gibi artışları yapar let gecici; if (kac > 0) { // virgül öncesinde rakam var mı? for (i = 0; i < kac; i++) { son = rk[kac - 1 - i]; // son karakterden başlayarak çözümleme yapılır. sonint = parseInt(son); // işlenen rakam if (w == 1) { // birinci basamak bulunuyor sonuc = bolum1[sonint] + sonuc; } else if (w == 2) { // ikinci basamak sonuc = bolum2[sonint] + sonuc; } else if (w == 3) { // 3. basamak if (sonint == 1) { sonuc = bolum3[1] + sonuc; } else if (sonint > 1) { sonuc = bolum1[sonint] + bolum3[1] + sonuc; } uclubasamak++; } if (w > 3) { // 3. basamaktan sonraki işlemler if (uclubasamak == 1) { if (sonint > 0) { sonuc = bolum1[sonint] + bolum3[2 + artan] + sonuc; if (artan == 0) { // birbin yazmasını engelle if(kac-1==i) { // sonuc = sonuc.replace(bolum1[1] + bolum3[2], bolum3[2]); } } sonaekle = 1; // sona bin eklendi } else { sonaekle = 0; } uclubasamak++; } else if (uclubasamak == 2) { if (sonint > 0) { if (sonaekle > 0) { sonuc = b2[sonint] + sonuc; sonaekle++; } else { sonuc = b2[sonint] + b3[2 + artan] + sonuc; sonaekle++; } } uclubasamak++; } else if (uclubasamak == 3) { if (sonint > 0) { if (sonint == 1) { gecici = b3[1]; } else { gecici = b1[sonint] + b3[1]; } if (sonaekle == 0) { gecici = gecici + b3[2 + artan]; } sonuc = gecici + sonuc; } uclubasamak = 1; artan++; } } w++; // işlenen basamak } } this.sonuc=sonuc; } </script>
merhaba,
php ile toplama işlemi yapıp sonuç gösteren bir kod için projenizi kullanmak istedim fakat çalışmadı
“Sayı Giriniz” bölümüne php kodlarını ekledim rakamlar kutuda görüncü fakat script algılamadı bir çözümü varmıdır.
kullandığım kodlar; https://controlc.com/c5f955fc
teşekkürler
iyi çalışmalar
. veya , koysam da kuruş çalışmıyor. Yardım eder misin ?
teşekkürler. ufak bir fix önerisi. istisna olarak 1001001 > birmilyonbirbinbir diye okuyor. normalde birbin diye okumuyoruz.
Dediğiniz gibi, kodu yazarken gözümden kaçmış. İlk fırsatta düzelteceğim.