Javascript Girilen Sayıyı Yazıya Çevirme Kodu - Bilişim Konuları

Javascript Girilen Sayıyı Yazıya Çevirme Kodu

Klavyeden girilen bir sayıyı yazıya çeviren örneğin javascript kodları. Öncelikle ekranın daha düzenli görünmesi için gerekli olan css kodlarını oluşturuyoruz. Daha sonra tasarladığımız Css kodlarıyla oluşturduğumuz kutu ile kullanıcıdan bir sayı girmesini istiyoruz. Kullanıcının girmiş olduğu sayıyı bir fonksiyon yardımı ile basamaklarına ayırıyoruz. Her basamağın 0’dan 9’a kadar hangi rakamdan oluştuğunu tespit ediyoruz. Daha sonra basamakların birler, binler, milyonlar, milyarlar ve trilyonlar kısımlarını tespit ediyoruz. Eğer girilen sayı ondalıklı bir sayı ise ondalıklı kısmına ayrıca bir hesaplama yaptırıyoruz. Tüm sayıyı yazıya çevirdikten sonra ekrana yazdırıyoruz.

Programın kodları:

<html>
<head>
<meta charset="utf-8">
<title>Kazım ŞİMŞEK</title>
 
<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>
</head>
<body>
 
<div class="kutu">
<input type="number" id="sayi" placeholder="Sayı Giriniz">
<div id="goster">
 
</div>
</div>
</script>

var sayi= document.getElementById("sayi"); // input kutusunu
 

sayi.onkeyup=function(){
var goster=document.getElementById("goster");//div etiketi
 
var islem=new SayiDonustur(this.value);
goster.innerHTML=islem.sonuc;
}

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>
</body>
</html>

 

Kaynak:www.yazilimbilisim.net

Bu Yazıya Tepkin Nedir?
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Yorum Yap