• Forumzar.COM Türkçe içerikli genel forum sitesi ve paylaşım platformu olarak eğlenceli ve interaktif bir forum deneyim sunar.

    Foruma üye olmak için BURAYA TIKLAYINIZ

JavaScript Sayıyı Yazıya Çevirme

Linux

Owner
Katılım
31 Tem 2022
Mesajlar
7,101
Puanları
63
Konum
istanbul
Cinsiyet
Erkek
Not: Örnek uzun ve karmaşık gelebilir.Lütfen sabırla okuyunuz.
Örnek;

Kod:
Kod:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Dragons WarJavaScript Sayıyı Yazıya Çevirme</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>
/*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>
</body>
</html>
 

Genel Forum Sitesi

Forum Sitesi - Forumzar.COM

Forumzar.COM olarak, Türkçe forum sitesi denildiğinde akla gelen ilk adres olarak, geniş kapsamlı genel forum platformumuzda buluşuyoruz. Türkiye'nin en büyük Türkçe forum siteleri arasında yer almanın gururunu yaşıyoruz. Çeşitli konu başlıklarında aktif bir şekilde paylaşımların yapıldığı, her konuda interaktif ve bilgilendirici tartışmalara katılmak için bizi takip edin! ve bir dakikanızı ayırarak forum sitemize üye olun!

Forum Siteleri

Bilgi paylaştıkça çoğalır sloganı ile ilerleyen forum sitesi platformumuza, siz de üye olarak forum sitemizde açılan konulara katılabilir ve ilgi alanınıza uygun konular açarak siz de paylaşımda bulunabilirsiniz.