Re: konudisi - yeni turk lirasi
- From: Baris Cicek <baris teamforce name tr>
- To: Nilgün Belma Bugüner <nilgun superonline com>, "The Turkish mailing list for GNOME & etc. issues" <gnome-turk gnome org>
- Cc:
- Subject: Re: konudisi - yeni turk lirasi
- Date: Sun, 03 Oct 2004 13:07:27 +0300
`man 3 printf`
"For some numeric conversions a radix character (âdecimal
pointâ) or thousandsâ grouping character is used. The actual
character used depends on the LC_NUMERIC part of the locale. The POSIX
locale uses â.â as radix character, and does not have a grouping
character. Thus,
printf("%â.2f", 1234567.89);
results in â1234567.89â in the POSIX locale, in â1234567,89â
in the nl_NL locale, and in â1.234.567,89â in the da_DK locale."
Simdi tr_TR locale'i icin demek ki cikti ne imis, "1234567.89". Peki
olmasi gereken ne? Tabi ki "1234567,89". Bu sekilde olmasinin sebebi
peki nedir? LC_NUMERIC'de decimal_point'in <U002D> olmasi yani '.'.
Duzeltmek icin gerekeni de daha onceden soyledim. Umarim yeterli
olmustur 'gerekliligini' anlatmak icin.
Durumu anlatan kod ekte. Ciktisi da:
$ gcc -o test test.c && ./test
Secili yore en_US, gosterim: $ 1,543,423.75
Secili yore tr_TR, gosterim: 1543423.75 TL
Secili yore fr_FR, gosterim: 1543423,75 EUR
Secili yore da_DK, gosterim: kr 1.543.423,75
'Gereksiz' cikis yaptigim icin de ozur dilerim.
On Sun, 2004-10-03 at 03:30, NilgÃn Belma BugÃner wrote:
> Cumartesi 2 Ekim 2004 23:46 sularÄnda, YÃksel ÃZCAN ÅunlarÄ yazmÄÅtÄ:
> > Selamlar,
> >
> > Bir muhasebeci olarak bir kac ekleme yapmak istiyorum;
> > Yeni turk lirasinin Sembolu YTL ve yeni Kuru$un sembolu de YKr'dir.
> > rakamin yaziyla yazildigi fatura basan programlar icin yaziyla() gibi
> > olan bi fonksiyonun kuru$u da goz onune alarak duzenlenmesi gerekir,
> > Diger bir nokta da glibc'deki sorun, acikcasi bir ondalik ayirac(kuru$
> > ayiraci) na sahip oldugumuz icin $ansliyiz :) cunku bir "bin (thousand
> > seperator) ayiraci"miz yok. Sembol olayina gelince, bi kac sene sonra
>
> Binlik ayracÄmÄz var. Siz parasal gÃsterimi kullanmÄyorsunuz anlaÅÄlan.
> Parasal gÃsterimi kullanÄrsanÄz binlik ayracÄmÄz olduÄunu gÃrÃrsÃnÃz.
> Konu ile ilgili adresi dikkatle okursanÄz neyi nasÄl
> kullanmanÄz gerektiÄini ÃÄrenebilirsiniz (tÃrkÃedir):
> http://belgeler.org/glibc/glibc-Locales.html
> Glibc ià hesaplamasÄnda ondalÄk ayraà olarak nokta kullanÄr ve binlik
> ayraà yoktur. Sadece biÃimli ÃÄktÄ alma aÅamasÄnda yerel gÃsterim
> o da siz Ãyle isterseniz kullanÄlÄr.
>
> SayÄsal gÃsterimdeki ondalÄk ayracÄn virgÃl mà nokta mÄ olacaÄÄnÄn
> bir Ãnemi yok. Ãnemli olan parasal gÃsterim ki, onda zaten sorun yok;
> binlik ayraà nokta, ondalÄk ayraà virgÃldÃr.
> SayÄsal gÃsterim olarak parasal gÃsterimi seÃmek mÃmkÃn olduÄuna gÃre
> (zaten baÅka Ãaresi de yok) sayÄsal gÃsterimin farklÄ olmasÄ sadece
> bir ÃeÅitlilik yaratÄr.
>
> AyrÄca glibc'de sayÄsal gÃsterimin nasÄl seÃileceÄi de belli deÄil.
> Yani sayÄsal gÃsterim sadece dosyada var, ÃÄktÄlamanÄn Ãaresi yok!
> Yerel dosyasÄnda, glibc iÅlevleri ile gÃsterimi mÃmkÃn olmayan
> o kadar Ãok tanÄm var ki, bu da onlardan biri.
> Yani, aslÄnda Ãzerinde kopartÄlan fÄrtÄnaya deÄecek birÅey yok ortada.
>
> > "Yeni Turk Lirasi" tanimindaki "Yeni" ibaresi buyuk ihtimalle
> > kaldirilacak, bakanlar kurulu bu yetkiyi kendine vermi$, fakat bu "yeni"
>
> BÃyÃk ihtimalle deÄil, 2006'da kalkacak. YTL sadece geÃiÅ aÅamasÄnda
> 1 yÄllÄÄÄna geÃerli. Bu nedenle glibc yerelinde deÄiÅiklik gerekmiyor.
> Zaten para sembolleri uluslarasÄ bir standarda gÃredir (ISO 4217).
> Glibc yerelinde TRL yerine baÅka bir para birimi gerekiyorsa, Ãnce devletin
> bu standartta gerekli deÄiÅikliÄi yaptÄrmasÄ lazÄm. Birileri istedi diye
> glibc yerelindeki tanÄmlar deÄiÅmez.
>
> BunlarÄ aÃÄklamak ihtiyacÄnÄ duydum ÃÃnkà glibc tr_TR yerelinde bir deÄiÅiklik
> istenirse onlar da bana soruyor. OnlarÄ kafamdan uydurmadÄm, hemen hepsinin
> bir standardÄ ya da geÃerli bir nedeni var.
>
> > ibaresini kaldirma i$inin 2005 icinde olabilecegini sanmiyorum, cunku
> > 2005'te her iki para birimi birlikte kullanilacak, "Yeni" ibaresinin
> > kalkmasi telafisi mumkun olmayan hatta Merkez Bankasini iflas
> > ettirebilecek duzeyde sorunlara sebep olacaktir, sadece YTL'nin tek
> > basina kullanilmaya baslanacagi donem 01.01.2006'dan itibaren
> > baslayacak, bunu da goz onune alirsak, 1 yilligina glibc'de degisiklik
> > yapilmasi oturup ta dusunulmesi gereken bir mesele. Diger bir konu da
> > muhasebe programlarinin uygulamada karsilasacaklari sorunlar;
> > YTL ile ilgili mevzuat $oyle diyor;
> > en du$uk para birimi 0.01 YTL yani 1 YKr dir; durum boyle olunca bir
> > faturanin en du$uk bedeli en az 1 Yeni Kuru$ olacak demek, diger
> > taraftan halen yurt di$ina yapilan ihracatlarda ve yurt di$indan yapilan
> > ithalatlarda $unu oldukca sIk goruyorum;
>
> Toplamlarda kuruÅ 2 hane olmak zorunda, sadece dÃviz kurlarÄnda
> 4 ya da 5 hane olacak ama alÄÅveriÅlerde ondalÄk ayracÄn saÄÄndaki
> hane sayÄsÄ yine 2; ÃÃnkà kuruÅtan kÃÃÃk para yok.
>
> Buradan ÃÄkan sonuà birim fiyatlarda kuruÅ hanesi kalabalÄk olabilir
> ama ana toplamda 2 hane olmak zorunda.
>
>
> Esen kalÄn,
> NilgÃn
>
> _______________________________________________
> GNOME-Turk ePosta listesi
> GNOME-Turk gnome org
> http://mail.gnome.org/mailman/listinfo/gnome-turk
>
#include <stdio.h>
#include <locale.h>
#include <langinfo.h>
#include <string.h>
int main () {
float a = 1543423.765;
int l;
char *curr;
char *locales[] = {
"en_US",
"tr_TR",
"fr_FR",
"da_DK",
NULL
};
for (l=0; locales[l] != NULL; l++) {
setlocale(LC_ALL,locales[l]);
curr = strdup(nl_langinfo(CRNCYSTR));
if (curr[0] == '-')
printf("Secili yore %s, gosterim: %s %'.2f\n", locales[l], nl_langinfo(CRNCYSTR)+1, a);
else
printf("Secili yore %s, gosterim: %'.2f %s\n", locales[l], a, nl_langinfo(CRNCYSTR)+1);
}
return 1;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]