• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Yüzdelik Döngü Oluşturmak mümkün mü ?

30 yıldır Excel kullanırım..... ilk defa kod çalıştırılırken böyle bir hata alanı gördüm.

Deneme yapmak için o satırın yerine aşağıdakini yerleştirip, deneyin....

C#:
    minTemp = 5000000


.
 
Evet oldu Haluk Bey ,
Versiyon farkı olduğu için mi böyle sorun meydana gelebiliyor.
Sizce 2016 versiyonunu çalıştırsam daha stabil olur mu ne tavsiye edersiniz?

30 yıldır Excel kullanırım..... ilk defa kod çalıştırılırken böyle bir hata alanı gördüm.

Deneme yapmak için o satırın yerine aşağıdakini yerleştirip, deneyin....

C#:
    minTemp = 5000000


.
 
Sizdeki sorun editör ayarlarında galiba;

Bir de aşağıdaki şekliyle dener misiniz? (Nokta yerine virgül kullanınca bakalım ne oluyor....)

C#:
    minTemp = 1,79769313486232E+308

.
 
Neyse, daha fazla uğraşmaya gerek yok ..... ne olduğunu tam olarak anlayamadım.

Sizin probleminiz minTemp değişkenine değer olarak 5000000 atayınca sorun çözüldüğüne göre bu şekilde kullanın. Dosyada "Büyük değer" diye tanımladığımız değer 5000000 'un üzerinde olmadığı sürece sorun olmaz.

.
 
Çok teşekkür ederim Haluk Bey ;
Dediğiniz üzere elimde zaten verdiğiniz rakamdan büyük veri olması mümkün değil.
Tüm yardımlarınız için teşekkür ederim.

Çok vaktinizi aldım.
Eğer isterseniz 2016 versiyonda deneyerek daha sonraki çalışmalarınızda bir faydası olacaksa , bir fikir verecekse sonucunu bildiririm.
Tüm çalışmalarınızda başarılar.

Neyse, daha fazla uğraşmaya gerek yok ..... ne olduğunu tam olarak anlayamadım.

Sizin probleminiz minTemp değişkenine değer olarak 5000000 atayınca sorun çözüldüğüne göre bu şekilde kullanın. Dosyada "Büyük değer" diye tanımladığımız değer 5000000 'un üzerinde olmadığı sürece sorun olmaz.

.
 
Tamam, kolay gelsin ...

.
 
:)

Oradaki "E" harfi, matematikteki üslü sayılarda kullandığımız "10 üzeri 308" ifadesindeki "10 üzeri" kısmının VBA'deki karşılığı.

Yani sayı; 1,79769313486232 x (10 üzeri 308)

Söz konusu bu büyük sayı, VBA'de "Double" olarak deklare edilebilecek en büyük sayıdır.

Diğer yandan, siz virgül kullanarak hata almadığınıza göre sorun editör ayarlarınızda demektir.

Her neyse ....

.
 
Bu arada, sizin yaptığınız değişiklikle, minTemp değişkenine 309,79769313486232 değerini atamış oldunuz.

Küçük bir sayı olduğu için başka verilerde sakıncalı olabilir...... benden uyarması.

.
 
Haluk bey'in müsadesiyle,

Editörde hata almamak için aynı değeri veren;

minTemp = [(1+(1-2^-52))*2^1023]

yazılabilir.
 
2016 64 Bit versiyonda hata vermiyor Haluk bey , bir mesaj yazdım düzeltmek için sildim erken karar vermişim , acemilik .
Tabi 102 sayısı küçük kalınca hata vermedi ilk haliyle.

Siz haklısınız tabi ki , düzeltme yaptığınız satırı kaydettim o şekilde çalışıyorum.

Sanırım 2019 versiyonunda bazı değişikler var , ben anlamıyorum detay tabi ki ama sorun yaşayanları duymuştum.
Tamamen bendeki 2019 versiyonu ile ilgili.
İyi çalışmalar diliyorum , her yardımınız için tek tek teşekkür ederim.

Bu arada, sizin yaptığınız değişiklikle, minTemp değişkenine 309,79769313486232 değerini atamış oldunuz.

Küçük bir sayı olduğu için başka verilerde sakıncalı olabilir...... benden uyarması.

.
 
Denedim Ömer bey dediğiniz üzere hata vermedi ,
Fakat Haluk Bey'in bahsettiği E harfi yani 10 üzeri 308 bu satırlarda nereye karşılık geliyor merak etmiyorum değil.

:)

Oradaki "E" harfi, matematikteki üslü sayılarda kullandığımız "10 üzeri 308" ifadesindeki "10 üzeri" kısmının VBA'deki karşılığı.

Yani sayı; 1,79769313486232 x (10 üzeri 308)

Söz konusu bu büyük sayı, VBA'de "Double" olarak deklare edilebilecek en büyük sayıdır.

Diğer yandan, siz virgül kullanarak hata almadığınıza göre sorun editör ayarlarınızda demektir.

Her neyse ....

.
Haluk bey'in müsadesiyle,

Editörde hata almamak için aynı değeri veren;

minTemp = [(1+(1-2^-52))*2^1023]

yazılabilir.
 
Ya da, bu şekilde olabilir;

C#:
    minTemp = 1.79769313486231 * Application.WorksheetFunction.Power(10, 308)


Ama sizde yine nokta/virgül karmaşası olursa, onu bilmem.....

.
 
Haluk bey,

Tahminime göre;

Olması gereken asıl değer, 1.7976931348623158E+308 editöre yazılınca sondaki 158 değer 2 olarak 1.79769313486232E+308 bu şekle dönüşüyor. Dönüşüm olan pc de kodlar çalışıyor fakat farklı pc de dönüşen değeri dikkate aldığı için kodlar hata veriyor.
 
Ömer Bey, o zaman en kestirmesi sayıyı hafiften biraz küçültmek yeterli olur. (sayının ondalık kısmını ihmal edebiliriz)

C#:
    minTemp = 1E+308


.
 
Geri
Üst