çıkarma işlemi sonucu

Katılım
6 Ağustos 2005
Mesajlar
63
Excel Vers. ve Dili
MSofis 2003 türkçe
sayın arkadaşlar verdiğiniz bilgiler için çok teşekkürler
A1 hücresinde 18000 değeri B1 hücresinde 17735,61 değeri var C1 hücresinde =A1-B1 formülü sonucu olarak 264,39 gözüküyor fakat hücreyi virgülden sonra 12 basamak yapınca deger 264,3899999999999 şekline geliyor bu değeri kullanan D1 hücresini koşullu biçimlendirme ile 264,39 a eşitse hücre kırmızı olsun şeklinde ayarladım C1 görünürde 264,39 olmasına karşın D1 hücresi kırmızı olmuyor çünkü değeri 264,389999999999 (formül denetleme ile bakabilirsiniz) şeklinde algılıyor bunun nedenini bilen varmı bu kadar basit bir çıkarma işlemini neden excel doğru sonuç vermiyor ancak C1 hücresini 2 basamaklı yuvarlayınca doğru sonuç veriyor teşekkürler
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,239
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

D1 hücresindeki koşullu biçimlendirmeyi aşağıdaki formülle düzenlerseniz probleminiz çözülür.

=YUVARLA(C1;2)=264,39
 
Katılım
7 Kasım 2005
Mesajlar
192
Excel Vers. ve Dili
excel2003
Birde seçenekler/hesaplamalar/"Duyarlılık görüntelendiği gibi" butonunu doldurarak denermisiniz.
 
Katılım
6 Ağustos 2005
Mesajlar
63
Excel Vers. ve Dili
MSofis 2003 türkçe
sayın otufan03 teşekkürler yüzlerce formülü yuvarla fonksiyonundan geçiriyordum böylelikle kurtuldum dediğniz şıkkı işaretleyince "veri dogruluğu sürekli olarak kaybedilecektir" uyarısı aldım herhalde önemli değildir hücredeki formül sonucu olan veri doğru değildiki zaten 264,39 olacağına 264,3899999999999 gözüküyor ve 264,39 sayısına eşitlik sağlanmıyordu sorun çözülmüş gözüküyor fakat neden çıkarma sonucu yanlış çıkıyor bilen arkadaş varmı ?bu hatadan microsoftun haberi varmıdır teşekkürler
 
Katılım
16 Aralık 2005
Mesajlar
130
Sayın Kartal1a aynı sorun VBA kodlamasında da var.

Sub a()
Dim i As Single
i = 18000 - 17735.61
[a1] = i
End Sub

Sub b()
Dim i As Currency
i = 18000 - 17735.61
[a2] = i
End Sub

Excel hücrelerine yazılan rakamlar için, fonksiyonun kullandığı değişken tanımlarından kaynaklanabilir diye düşünüyorum. Mesela yukarıda Single olarak tanmımlanan değişkenin işlem sonucu olarak verdiği rakam: 264,390014648437 iken, Currency olarak tanımlandığında sonuç:264,39 olmaktadır. Duyarlılık değiştirilince değişken tipi de değişiyor olabilir. Ama sadece tahmin çünkü yaptıkları işlemlerin tamamına yakınını DLL haline çevirip gizlemişler bu nedenle ancak tahmin edebildim:(
 
Üst