Fatura ve benzeri belgelerde, tutarın yazılışlarını da görmekteyiz. Söz gelimi 1,25 , BIR TL YIRMI BES KURUS. Geçtiğimiz günlerde mal kabul yapan ve tedarikçiye ürün iadesi yapacak terminal programı projesinde bu tür bir fonksiyona gerek duydum. Googling esnasında bulduğum fonksiyonların çoğu hem Yeni Türk Lirası biçemine uygun değildi, hem de kod karmaşası daha inceleme aşamasında beni yordu. Biz de iş başa düştü diyerek, bir JavaScript fonksiyonu yazdık.
Önemli Not . Yeni Türk Lirası biçemindeki tutarları yazıya çeviren fonksiyonun tüm tarayıcılarda (Chrome/Mozilla Firefox ve Internet Explorer) test edilmiş hali aşağıya eklenmiştir. Fatura ve benzeri belgelerde, tutarın yazılışlarını da görmekteyiz. Söz gelimi 1,25 , BIR TL YIRMI BES KURUS
Geçtiğimiz günlerde mal kabul yapan ve tedarikçiye ürün iadesi yapacak terminal programı projesinde bu tür bir fonksiyona gerek duydum. Googling esnasında bulduğum fonksiyonların çoğu hem Yeni Türk Lirası biçemine uygun değildi, hem de kod karmaşası daha inceleme aşamasında beni yordu. Biz de iş başa düştü diyerek, bir JavaScript fonksiyonu yazdık.
Fonksiyonun prototipi:
string cevir(sayi,separator)
Sayı malumunuz üzere, yazıya çevrilecek tutar. Separator, yani ayraç ise, TL ve KURUŞ kısmını ayıran işaret. Bu nokta ya da virgül olabilir. Bunu fonksiyona belirtmemiz gerekiyor.
Örneğin : cevir(325,50,",")
Ekran çıktısı:
Umarım faydalı olur.
Buyrun Kod:
12 yorum:
merhaba,
konuyla alakalı değil ama c hakkında bir sorum olacak.
dizi[5]={1,2,3,4,5} şeklinde bir dizim var ve elemanlarının yerini değiştirmek istiyorum.program her çalıştığında elemanlar sabit kalacak ama yerleri değişecek.
yani dizi[5]={2,3,4,1,5}
bir daha çalışınca 3,2,4,5,1 gibi sürekli değişecek.
Merhaba, geciken yanıt için özür dilerim. Aşağıdaki kodları kullanarak array shuffle (dizi karıştırma) işlemini yapabilirsiniz:
Lütfen aşağıdaki URL'yi giriniz.
http://pastebin.com/embed_iframe.php?i=9jQ6Qpsz
Öncelikle teşekkürler, bu kodu javascript olarak bulmak gerçekten güç. ancak başlangıç seviyesi biri olarak tam olarak kodu browser'da çalıştıramadım. Kodunuzun başına
< html>
< body>
< script type="text/JavaScript">
(tagler kullanılmadığı için boşluklu yazıyorum)
ve sonuna
< /script>
< /body>
< /html>
tagleri ekleyerek bir html oluşturdum. öncelikle sayiyi ve seperatörü kod içinde nereye yerleştirmem gerektiğini anlamadım. document.write komutuyla sadece sonucu (yazıyı) tarayıcıda görüntülemek istiyorum. daha fazla detay verirseniz eminim benim gibi bir çok kişiyede yardımcı olacak faydalı bir kod olmuş, ellerinize sağlık şimdiden teşekkürler
Sayın Özcan;
Öncelikle ilginiz için teşekkür ederim.
Fonksiyonu script tagları arasında tanımlayıp, fonksiyonun hemen bitiminde test etmek amaçlı şu şekilde çağırabilirsiniz
alert(cevir("3,25",","));
Fonksiyonun Mozilla Firefox, Google Chrome ve Internet Explorer tarayıcılarında test edilmiş sürümü yorumunuzun akabinde aynı blog girdisi içerisinde yayınlanmıştır.
Tekrar teşekkürler.
Ziyahan bey,
cevabınız için teşekkürler. Sizin desteğinizle kodu tarayıcıda çalıştırabildim, kuruşlarda sıkıntı yok ancak sanırım kodda genel bir hata var mesela:
document.write(cevir("1100,00",","));
yazdığımda karşıma
"BİR BİN BİR YÜZ TÜRK LİRASI"
çıkıyor. sizde proje için bunu yaptığınızı belirtmişsiniz belki farketmemiş olabilirsiniz.
Haklısınız. Kodu güncelledim ve sözünü ettiğiniz hatayı by pass ettim. Lütfen kontrol ediniz. Teşekkür ederim.
Merhabalar tekrar, ilginiz için teşekkür ederim.
21101,00 denedim,
"YIRMI BIN YUZ BIR TL" çıktı. sanırım kısmen düzelmiş ancak 11000,21000,31000 gibi rakamlarda sıkıntı oluyor sanırım.
bilgilerinize
Merhabalar;
Kodun PHP versiyonu (http://ziyahanalbeniz.blogspot.com/2013/12/tl-para-birimi-tutar-yazya-cevirmek-php.html) adresinde yayımlandı. Bazı hataları da bu vesile ile düzeltmiş olduk. Bilgilerinize arz ederim.
ben biraz daha kısasını yazdım paylaşmak istedim
var sonuc="";
var kusur="";
function intTofont(veri){
var ara_yazi=["","Bin","Milyon","Milyar","Trilyon","Katrilyon"];
var data=veri.substring(0,veri.indexOf("."));
var kusurat=veri.substring(veri.indexOf(".")+1);
var basamak_sayisi=data.length;
for (var i = 0; i < basamak_sayisi; i++) {
yazi_ver(data[i],basamak_sayisi-i,"on");
if((basamak_sayisi-i-1)%3==0){
sonuc=sonuc+(ara_yazi[(basamak_sayisi-i-1)/3])+" ";
}
}
for (var k = 0; k<2 ; k++) {
yazi_ver(kusurat[k],2-k,"arka");
};
return (sonuc+"TL "+kusur+" Kr");
}
function yazi_ver(veri,basamak1,yer){
var basamak=[
[0,"Sıfır","","","bin",""],
[1,"Bir","On","Yüz"],
[2,"İki","Yirmi","İki Yüz"],
[3,"Üç","Otuz","Üç Yüz"],
[4,"Dört","Krk","Dört Yüz"],
[5,"Beş","Elli","Beş Yüz"],
[6,"Altı","Altmış","Altı Yüz"],
[7,"Yedi","Yetmiş","Yedi Yüz"],
[8,"Sekiz","Seksen","Sekiz Yüz"],
[9,"Dokuz","Doksan","Dokuz Yüz"]
];
var deger=basamak1%3==0?3:basamak1%3;
if(veri!="0"){
if(yer=="on")
sonuc=sonuc+(basamak[veri][deger])+" ";
else
kusur=kusur+(basamak[veri][deger])+" ";
}
}
Erdoğan Bey,
Katkınız için teekkür ederim.
//erenleryazilim.com 2018
//bu kodlama, parasal sayıyı, yazılı haline getirir
//örnek: 1250.75 > BİN İKİ YÜZ ELLİ TL YETMİŞ BEŞ KR
function yaziyla(sayi)
{
rakam = sayi.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",").split(".");
tamsayi = rakam[0];
ondalik = rakam[1]||"";
var birler = ["","BİR","İKİ","ÜÇ","DÖRT","BEŞ","ALTI","YEDİ","SEKİZ","DOKUZ"];
var onlar = ["","ON","YİRMİ","OTUZ","KIRK","ELLİ","ALTMIŞ","YETMİŞ","SEKSEN","DOKSAN"];
var binler = ["","BİN","MİLYON","MİLYAR","TRİLYON","KATRİLYON","KENTİLYON"];
var sonuc = [];
var adim = 0;
for(i=tamsayi.split(",").length;i>0;i--)
{
sayi = tamsayi.split(",")[i-1];
if(sayi.length==1){ sayi="00"+sayi; }
if(sayi.length==2){ sayi="0"+sayi; }
c="";
for(j=1;j<sayi.length+1;j++)
{
if(j==1 && sayi[j-1]==1){ c+= " YÜZ "; }
else if(j==1 && birler[sayi[j-1]]!=""){ c+= birler[sayi[j-1]]+" YÜZ "; }
else if(j==2){ c+= onlar[sayi[j-1]]+" "; }
else if(j==3 && tamsayi.length==5 && sayi[j-1]==1 && adim==1){ c+= " "; }
else if(j==3){ c+= birler[sayi[j-1]]+" "; }
}
if(c!=""){ sonuc.push(c+binler[adim]); }
adim++;
}
if(sonuc.length!=0){ sonuc = sonuc.reverse().join(" ")+" TL"; }else{ sonuc=""; }
if(ondalik.length==1){ ondalik=ondalik+"0"; }
if(ondalik!=""){
sonuc += " "+onlar[ondalik[0]]+" "+birler[ondalik[1]]+ " KR";
}
sonuc = sonuc.replace(/ /g," ").trim();
return sonuc;
}
yaziyla(123456.78); //örnek çalıştırma
acemiliğimi mazur görün lütfen html tarafını da belirtir misiniz ?
Yorum Gönder