Kayan Nokta Hatalarını Çözme

Kayan Nokta Hatalarını Çözme

Kayan Nokta Hatalarını Çözme
Bu dosya, Excel'de ondalıklı sayıların ikilik sistemde yaklaşık olarak saklanması nedeniyle ortaya çıkan karşılaştırma hatalarını örneklerle gösterir. Hücrede aynı görünen iki değerin eşitlik kontrolünde yanlış sonuç vermesinin nedeni ve ROUND ile giderilmesi adım adım izlenebilir.

Dosyanın içeriği​

  • Sheet1: "Example 1 - Typical rounding problem" örneği. Item, Discount ve Check sütunlarında ürün listesi (Bananas, Pasta Sauce, Greek Yogurt, Coffee, Frozen Pizza, Chicken, Cereal, Avocados) ve indirim tutarları yer alır. Tutarlar 0,34900000000000003 gibi uzun ondalıklı değerler olarak görünür.
  • Sheet2: "Example 2 - Floating point errors with subtraction" örneği. Value 1, Result ve Check sütunlarında çıkarma sonuçları listelenir. Örneğin 15,37 ile ilgili sonuç 1,9999999999999574E-2 olarak çıkar.
  • Sheet3: "Example 3 - Floating point errors with increments" örneği. Başlangıç, adım ve adım sayısı değerlerine göre -1,9 değerinden başlayan bir dizi üretilir. Sol sütunda ham sonuçlar (-1,7999999999999998 gibi), sağ sütunda yuvarlanmış sonuçlar (-1,8) yan yana gösterilir.
  • Sheet4: Aynı artış örneğinin SEQUENCE kullanmayan, hücre hücre toplayan sürümü.

Kullanılan formüller​

  • Sheet1 ve Sheet2 içindeki Check sütunu, hesaplanan değerin beklenen değerle eşit olup olmadığını mantıksal karşılaştırmayla kontrol eder. Ham sonuçlarda eşit görünen değerler bile FALSE dönebilir.
  • Sheet2 içindeki fark hesabı iki hücreyi birbirinden çıkarır.
  • SEQUENCE fonksiyonu, başlangıç ve adım değerlerinden dizi üretir.
  • ROUND fonksiyonu, dizi sonuçlarını bir ondalık basamağa yuvarlayarak birikmiş küçük sapmaları giderir.
Sheet3'te yuvarlanmış dizi şu formülle üretilir:
Excel formülü
=ROUND(SEQUENCE(F6,,F4,F5),1)
Sheet4'te ise her satır bir önceki değere adım eklenerek yuvarlanır:
Excel formülü
=ROUND(C5+$F$5,1)

Nasıl kullanılır​

  1. Sheet1 ve Sheet2'de Check sütunundaki sonuçları inceleyin; görünürde eşit değerlerin neden farklı çıktığını görürsünüz.
  2. Sheet3'te Start, Step ve Steps hücrelerindeki değerleri değiştirerek ham ve yuvarlanmış dizileri karşılaştırın.
  3. Kendi çalışmanızda eşitlik kontrolü yapılacak hesapların etrafına ROUND ekleyin.
  4. SEQUENCE dinamik dizi fonksiyonudur; Sheet3 için bu fonksiyonu destekleyen bir Excel sürümü gerekir.

ExcelDepo tarafından daha fazla dosya

Detaylar
Yazar
ExcelDepo
İndirme
1
Gösterim
150
İlk sürüm
Güncel
SHA-256
ffe08dd4aa365b31055f27db6830b1816fb357c14a33f3843348f55bcb3c9253

Puanlar

0.00 Oylama 0 İnceleme
Geri
Üst