Konu: Set Decimal ve Round İlişkisinde bir hata mı var?
Merhaba,
Decimal ile Round fonksiyonları arasında acaba bir hata mı var yoksa ben yanlış mı kullanıyorum.
Aşağıdaki kodda yuvarlama yanlış oluyor.
Clear
Set Decimals To 6
Create Cursor curIskontoOranlari(nOran B(2))
Insert Into curIskontoOranlari Values(10)
Insert Into curIskontoOranlari Values(5)
Insert Into curIskontoOranlari Values(3)
Local lnTutar As Double
Go Top In curIskontoOranlari
m.lnTutar = 100
Do While !EOF("curIskontoOranlari")
m.lnTutar = m.lnTutar - (m.lnTutar * curIskontoOranlari.nOran / 100)
Skip In curIskontoOranlari
EndDo
? "Yuvarlamadan önceki değer" && 17,06500000000000
? 100 - m.lnTutar
m.lnTutar = Round(100 - m.lnTutar, 2)
? "Yuvarlamadan sonraki değer" && 17,06
? m.lnTutar
Ancak Set Decimal To 6 değerini Set Decimal To 2 olarak değiştirdiğimde sonuç doğru çıkıyor.
Clear
Set Decimals To 2
Create Cursor curIskontoOranlari(nOran B(2))
Insert Into curIskontoOranlari Values(10)
Insert Into curIskontoOranlari Values(5)
Insert Into curIskontoOranlari Values(3)
Local lnTutar As Double
Go Top In curIskontoOranlari
m.lnTutar = 100
Do While !EOF("curIskontoOranlari")
m.lnTutar = m.lnTutar - (m.lnTutar * curIskontoOranlari.nOran / 100)
Skip In curIskontoOranlari
EndDo
? "Yuvarlamadan önceki değer" && 17,06500000000000
? 100 - m.lnTutar
m.lnTutar = Round(100 - m.lnTutar, 2)
? "Yuvarlamadan sonraki değer" && 17,07
? m.lnTutar
VFP9 kullanıyorum acaba decimal olayını iyi kavrayamadım da yanlış mı düşünüyorum yoksa bir hata mı var?