1

Konu: table da float ?

selamlar;

Table oluşturuken type da float diye bir seçenek var.
Bunun numeric den farkı nedir? nerelerde kullanılır?

Bilmediğin Neyse Yanıldığındır.

2

Re: table da float ?

Eger numeric kullanman gerkiyorsa onu kullan. Normalde ne numeric ne de float'in kullanimi kalmadi bence (fox2xte yeri vardi).
Numeric yerine kullanmanin nedeni (eger duzeltilmediyse) buyuk rakamlarda anlasilmaz bir sekilde yuvarlama yapiyordu numeric.

3

Re: table da float ?

teşekkür ederim.

Bilmediğin Neyse Yanıldığındır.

4

Re: table da float ?

cetinbasoz yazdı:

Eger numeric kullanman gerkiyorsa onu kullan. Normalde ne numeric ne de float'in kullanimi kalmadi bence (fox2xte yeri vardi).
Numeric yerine kullanmanin nedeni (eger duzeltilmediyse) buyuk rakamlarda anlasilmaz bir sekilde yuvarlama yapiyordu numeric.


foxpro dos bazı rakamlarda göçüyor bile. hiç hata vermeden dos a düşüyor. roundla çözüyorum o problemi. bunu bazen yapıyor. neden yaptığını da anlamadım. 2 kuruş hanesi olan rakamı hiç gerekmediği halde round ile 2 kuruş yuvarlıyorum... big_smile

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

5

Re: table da float ?

cetinbasoz yazdı:

Eger numeric kullanman gerkiyorsa onu kullan. Normalde ne numeric ne de float'in kullanimi kalmadi bence (fox2xte yeri vardi).
Numeric yerine kullanmanin nedeni (eger duzeltilmediyse) buyuk rakamlarda anlasilmaz bir sekilde yuvarlama yapiyordu numeric.


foxpro dos bazı rakamlarda göçüyor bile. hiç hata vermeden dos a düşüyor. roundla çözüyorum o problemi. bunu bazen yapıyor. neden yaptığını da anlamadım. 2 kuruş hanesi olan rakamı hiç gerekmediği halde round ile 2 kuruş yuvarlıyorum... big_smile

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

6

Re: table da float ?

sql data da float mı? decimal mi?
Ne önerirsiniz?

Bilmediğin Neyse Yanıldığındır.

7

Re: table da float ?

" Normalde ne numeric ne de float'in kullanimi kalmadi bence " yazmışsın Çetin Hocam.
Peki o halde şunu sorucam..... Nümerik yerine ne kullanmalıyız.?

(Tavsiyen üzere kesinlikle general kullanmıyoruz. Nümeriktemi kullanmıycaz)

8

Re: table da float ?

Double, currency

9

Re: table da float ?

Bir ara VFP Öğreniyorum başlağı altında bir şeyler yazmaya çalışmıştım. O yazının veritabanına başlarken atlı yazımı kısmet olup bir türlü bitiremedim ama o yazımda double ile ilgili kısmı burada yayınlayayım.

B, Double
Matematiksel işlemlerde özellikle dijitten kaynaklanan sorunlardan kurtulmak ve daha doğru sonuçlar elde etmek için bu saha tipini kullanabilirsiniz. Bu cümle biraz kapalı oldu. Bu durumu bir örnek ile açıklamaya çalışalım. Bir işlem sonucunda 22 rakamını 7'ye bölmeniz ve çıkan sonucu tabloda saklamanız gerekmektedir. Bu sonucu ise bir başka zaman kullanmamız gerektiği bir durumu düşünelim.

22/7 = 3,1428571428571428571428571428571 kendini tekrarlayan bir dijite sahip bir sayı olur. Bundan sonraki kısımları ise bir gerçek örnek ile yapalım.

Visual Fox Pro
Create Cursor curDeneme (nSonuc1 B(2), nSonuc2 N(6,2))

Insert Into curDeneme Values (22 / 7, 22 / 7)
 
? curDeneme.nSonuc1         && 3,14 olarak görünür. Çünkü bu saha Double olup 2 dijit olarak ayarlanmıştı.
? curDeneme.nSonuc1 * 10000     && 31428,57 olarak görünür. Dikkat edin bu çarpma işlemi 3,14 ile değil 3,1428571428571428571428571428571 ile olmuştur.
 
? curDeneme.nSonuc2         && 3,14 olarak görünür. Çünkü bu daha Numeric olup 2 dijit olarak ayarlanmıştır.
? curDeneme.nSonuc2 * 10000     && 31400,00 olarak görünür. Dikkat edin bu çarpma işlemi 3,14 ile yapılmıştır. Doubledaki gibi değil.
 
? curDeneme.nSonuc1 * 7     && 22,00 olarak görünür
? curDeneme.nSonuc2 * 7     && 21,98 olarak görünür.


Hassas işlemlere çok nadir ihtiyaç duyuyorum. Ancak yinede Double saha tipini sıkça kullanıyorum. Toplam boyu 8'i geçen tüm sayısal tipler için double tipini tercih ediyorum. Çünkü tabloda N(12,2) saha tipi 12 byte yer tutarken B(2) 8 byte yer tutmaktadır. neresinden baksanız her kayıt için 4 byte kar etmiş oluyorum. Bu yüzden N(8,2) üzeri tipler için B(2) tercih ediyorum. Bu sahayı kullanırken de hassasiyete ihtiyacım yoksa Round fonksiyonunu kullanıyorum. Yukarıdaki örnek için ;

Visual Fox Pro
Insert Into curDeneme Values (Round(22 / 7, 2),  22 / 7)
/o---------------------o\
     www.haser.com
\o---------------------o/

10

Re: table da float ?

Ben de birkac teknik detay ekleyeyim. Numerik, float tiplerinde data disk uzerinde oldugu gibi tutuluyor (yani okundugu gibi, sanki karaktermis gibi). Integer,double,currency tiplerinde ise bu sayilarin 4-8 byte olarak hexadecimal sekilleri tutuluyor. Hexadecimal olarak fraksiyonel sayilarin tam bir kesinlikle tutulmasi mumkun degil ve bu VFP'nin degil tum decimal sayilarin problemi (IEEE floating point numbers). Tarkan'in dedigi gibi sayiyi 3.14 gibi gorseniz de aslinda 3.1415... diye gidiyor. Burada sasirmamaniz gereken 3 diye gordugunuz sayinin aslinda 2.9999999... olabilecegi. Bu tip roundation problemlerine karsi ya siz elle birseyler yapacaksiniz (round ntom() gibi) ya da currency kullanabilirsiniz. Currency'de decimal kisim 4 haneye yuvarlanir.

11

Re: table da float ?

İyi günler
Ben hastanede foxpro ile oluşturulmuş bir program kullanıyorum
kullanırken

sıvı hacmini ölçüyoroz
hücre sayısını ölçüyoruz
toplam hücre yi belirlemek için sıvı hacmini hücre sayısı ile çarpmam gerekli
fakat bunu programda yapamıyorum

kısaca basit matemetiksel işlem nasıl yapılır
teşekürler

12

Re: table da float ?

Baya * ile. Ornegin:

Visual Fox Pro
hacim = 100

hucre = 20
? m.hucre * m.hacim

Tabii senin sormak istediginin bu oldugunu sanmiyorum. Biraz detay verseydin, ornek veri, nerede nasil yapmak istiyorsun filan belki o zaman ise yarar bir yol bulurduk.

Not: Hastanede derken, hangi hastane ve gorevin ne? Ben de doktor oldugumdan merak ettim.