Sayı floatmı,integermi başka bişeymi anlayamadım gitti
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Sayı floatmı,integermi başka bişeymi anlayamadım gitti
Merkez bankasından döviz kurlarını alıyorum. aldığım kur 1.3598 şeklinde geliyor .hesaplama yaptırmak isteyince bu değeri ne integer olarak ne de float veya currency olarak kabul etmiyor. 13598 veya 1.359,8 şekline nasıl çevirebilirim bu sayıyı acaba.
Kolay gelsin herkese
Kolay gelsin herkese
DOĞUNUN SINIR TAŞI ERZURUM'UN DADAŞ'I
EFE'Sİ VAR İZMİR'İN EĞİLMEZ TÜRK' ÜN BAŞI
EFE'Sİ VAR İZMİR'İN EĞİLMEZ TÜRK' ÜN BAŞI
- uğur alkan
- Üye
- Mesajlar: 227
- Kayıt: 29 Ağu 2004 04:49
- Konum: Istanbul
ilginç bir fonksiyon buldum gayet güzel çalışıyor
Sadece formun Uses kısmına 'strutils' ekliyorsunuz
stringin içinde istediğiniz karekteri istediğiniz karekterle sorunsuz değiştiriyor
şeklinde kullanılıyor 1. parametre değişim yapılacak olan string
2. paremetre değiştirilecek kısım 3. parametrede değiştirelecek olan kısmın yerine yazılacak olan string
nokta (.) virgül (,) dönüşümlerinde insanları pos komutundan kurtarıyor....
Sadece formun Uses kısmına 'strutils' ekliyorsunuz
stringin içinde istediğiniz karekteri istediğiniz karekterle sorunsuz değiştiriyor
Kod: Tümünü seç
XDEGER[i]:=AnsireplaceSTR(XDEGER[i],'.',',');
2. paremetre değiştirilecek kısım 3. parametrede değiştirelecek olan kısmın yerine yazılacak olan string
nokta (.) virgül (,) dönüşümlerinde insanları pos komutundan kurtarıyor....
Bazen sert rüzgarlar eser başını öne eğmekten asla korkma
Merhabauğur alkan yazdı:ilginç bir fonksiyon buldum gayet güzel çalışıyor
Sadece formun Uses kısmına 'strutils' ekliyorsunuz
stringin içinde istediğiniz karekteri istediğiniz karekterle sorunsuz değiştiriyor
şeklinde kullanılıyor 1. parametre değişim yapılacak olan stringKod: Tümünü seç
XDEGER[i]:=AnsireplaceSTR(XDEGER[i],'.',',');
2. paremetre değiştirilecek kısım 3. parametrede değiştirelecek olan kısmın yerine yazılacak olan string
nokta (.) virgül (,) dönüşümlerinde insanları pos komutundan kurtarıyor....
bulduğunuz çözüm geçici rsimsek ise kesin çözümü göstermiş. şöyle izah edeyim. bizde ayraç virgul ama almanyada yada italyada değil. ? senin fonksiyon sadece tr için işi çözüyor. başka bir şeye yaramıyor..
Ben arakdaşın farklı bir dilde program yazmadığını düşünüyorumikut yazdı: bizde ayraç virgul ama almanyada yada italyada değil. ? senin fonksiyon sadece tr için işi çözüyor. başka bir şeye yaramıyor..

Kolay gelsin.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
_________________
Para birimi ondalık hanesinin problemli olduğunu daha yeni konuştuk.
Decimalseparator burda iş görebilir. Ama DecimalSeparator sayılar için ondalık ayıracı para için değil.
Bölge ve Dil seçeneklerinden DecimalSeparator ü herhangi bir karekter yapabilirsiniz. Decimalseparator ü değiştirmek tam bir çözüm değil. Adam parabirimi ondalık ayıracı olarak bu gün "," kullanır sizde programı ona göre yazarsınız sonra adam "." yapar sizin program çöker. Biz bunu yaşadık binlerce abonenin hesaplarının silinip yeniden düzenlenmesi gerekti. Neseki ben yapmadım
Benim önereceğim çözüm;
Sayının sağdan üçüncü karekterini Sisteminizdeki DecimalSeparator ile değiştirin (üçüncü karekter rakamsa değişmemeli). Bunun dışındaki rakam olmayan tüm karekterleri silin. sadece rakamlardan oluşan (ve sağdan 3 ü karekteri sistemdeki DecimalSeparator olan) bir sayı kalsın elinizde. Onuda istediğiniz fonksiyonla sayıya çevirebilirsiniz. (parabirimi fonksiyonlarını kullanmayın, StrToCurr gibi)
Decimalseparator burda iş görebilir. Ama DecimalSeparator sayılar için ondalık ayıracı para için değil.
Ondalık ayıracı para için, İtalyada da virgül (bakınız: Marcu Canto Unleashed Delphi 5). Asıl sorun bizim (Türkiye) hemen her konu gibi Avrupa standartlarına bağlı olmamamız. Halbu ki dünyada egemen olan Anglosakson lar. Onlarda Avrupalı olmalarına rağmen farklı standartlara sahipler. Nese uzatmayalım.bizde ayraç virgul ama almanyada yada italyada değil. ? senin fonksiyon sadece tr için işi çözüyor. başka bir şeye yaramıyor..
Bölge ve Dil seçeneklerinden DecimalSeparator ü herhangi bir karekter yapabilirsiniz. Decimalseparator ü değiştirmek tam bir çözüm değil. Adam parabirimi ondalık ayıracı olarak bu gün "," kullanır sizde programı ona göre yazarsınız sonra adam "." yapar sizin program çöker. Biz bunu yaşadık binlerce abonenin hesaplarının silinip yeniden düzenlenmesi gerekti. Neseki ben yapmadım

Benim önereceğim çözüm;
Sayının sağdan üçüncü karekterini Sisteminizdeki DecimalSeparator ile değiştirin (üçüncü karekter rakamsa değişmemeli). Bunun dışındaki rakam olmayan tüm karekterleri silin. sadece rakamlardan oluşan (ve sağdan 3 ü karekteri sistemdeki DecimalSeparator olan) bir sayı kalsın elinizde. Onuda istediğiniz fonksiyonla sayıya çevirebilirsiniz. (parabirimi fonksiyonlarını kullanmayın, StrToCurr gibi)
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
@Poshet303 önemli bir çözüm üretmiş kısa bi ekleme yapayım ben de..
Yapman gereken işlem, açılışta DecimalSeparator karakterini öğrenmek.Merkez Bankası uluslararası standartta çalıştığı için mecburen diğer ülkelerin standartlarına uymak durumunda kaldığından ondalık karakterini nokta olarak kullanıyor (ki doğru olan da budur..).Kur bilgisini aldıktan sonra bu bilgi içinde nokta (tabi bu Merkez Bankasının ileride bunu değiştirmeyeceği anlamına gelmez..) karakterini aratıp DecimalSeparatorle uyuşup uyuşmadığını kontrol etmek ve uyuşmuyorsa bunu AnsiReplaceStr, AnsiReplaceText ya da kendin bir fonksiyon yazarak değiştirmek.Son olarak yukarıdaki Ansi.. fonksiyonlarını kullanabilmek için Uses'a StrUtils unitini eklemen gerekecektir.
Kolay gele..
Yapman gereken işlem, açılışta DecimalSeparator karakterini öğrenmek.Merkez Bankası uluslararası standartta çalıştığı için mecburen diğer ülkelerin standartlarına uymak durumunda kaldığından ondalık karakterini nokta olarak kullanıyor (ki doğru olan da budur..).Kur bilgisini aldıktan sonra bu bilgi içinde nokta (tabi bu Merkez Bankasının ileride bunu değiştirmeyeceği anlamına gelmez..) karakterini aratıp DecimalSeparatorle uyuşup uyuşmadığını kontrol etmek ve uyuşmuyorsa bunu AnsiReplaceStr, AnsiReplaceText ya da kendin bir fonksiyon yazarak değiştirmek.Son olarak yukarıdaki Ansi.. fonksiyonlarını kullanabilmek için Uses'a StrUtils unitini eklemen gerekecektir.
Kolay gele..
- uğur alkan
- Üye
- Mesajlar: 227
- Kayıt: 29 Ağu 2004 04:49
- Konum: Istanbul
Benim konum veritabanları hesap kitap değil, makina otomasyonu
benimde başım (.) ve (,) le dertte
gibi string ifadeler var ve burada sayısal değerleri almam lazım hadi DecimalSeperator kullanarak çözün.... 
benimde başım (.) ve (,) le dertte
Kod: Tümünü seç
X10.696 Y20.5 F600
X8.231 Y25.471
X7.476 Y15.691
X6.712 Y25.463
X4.251 Y20.463
X5.413 Y27.886
X5.415
X5.523 Y27.563
X5.63 Y27.271
X5.748 Y26.979
X5.863 Y26.721
X5.989 Y26.465
X6.11 Y26.243
X6.243 Y26.027
X6.369 Y25.846
X6.507 Y25.674
X6.637 Y25.535
X6.779 Y25.409
X6.911 Y25.312
X7.05 Y25.236

Bazen sert rüzgarlar eser başını öne eğmekten asla korkma
merhaba
Ben hep ingilizce windows kullandım. İhracat kısmındada durum bu... ne olcak şimdi?pro_imaj yazdı:Ben arakdaşın farklı bir dilde program yazmadığını düşünüyorumikut yazdı: bizde ayraç virgul ama almanyada yada italyada değil. ? senin fonksiyon sadece tr için işi çözüyor. başka bir şeye yaramıyor..![]()
Kolay gelsin.
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
Re: merhaba
Merhaba;ikut yazdı: Ben hep ingilizce windows kullandım. İhracat kısmındada durum bu... ne olcak şimdi?
Ben olaya farklı bir açıdan bakmıştım ing kullanımını düşünememişim

Özür dilerim.
Bu konu hakkında ise BenŞöyle bir çözüm üretiyorum.
Kod: Tümünü seç
update Barkod set Miktar=replace(Miktar,',','.')
Saygılarımla
Kolay gelsin.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
_________________