folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder C# Faktöriye Alma Ve Decimal Veri Tipi Sorunu



C# Faktöriye Alma Ve Decimal Veri Tipi Sorunu

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Https
    Https's avatar
    Kayıt Tarihi: 05/Ağustos/2017
    Erkek

    Decimal ve hataya düşen kodlar;

    https://paste.ubuntu.com/p/K6C246kCHg/

    Double hatasız çalışıyor;

    https://paste.ubuntu.com/p/qRhbhXn46x/

     

    3-5 gibi değerlerde sorunsuz çalışıyor decimal ile ancak 40 değeri girildiğinde program hataya düşüyor şu haliyle.

    Veri tiplerini double dönüştürünce sorunsuz çalışıyor. Ancak decimal'de iken program "OverflowException" hatasına düşüyor. Sebebi nedir. Decimal veri tipi double'dan çok daha büyük değil mi?

    Https tarafından 31/Tem/19 22:49 tarihinde düzenlenmiştir
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    aercys
    aercys's avatar
    Kayıt Tarihi: 12/Nisan/2008
    Erkek
    Https bunu yazdı

    Decimal ve hataya düşen kodlar;

    https://paste.ubuntu.com/p/K6C246kCHg/

    Double hatasız çalışıyor;

    https://paste.ubuntu.com/p/qRhbhXn46x/

     

    3-5 gibi değerlerde sorunsuz çalışıyor decimal ile ancak 40 değeri girildiğinde program hataya düşüyor şu haliyle.

    Veri tiplerini double dönüştürünce sorunsuz çalışıyor. Ancak decimal'de iken program "OverflowException" hatasına düşüyor. Sebebi nedir. Decimal veri tipi double'dan çok daha büyük değil mi?

    Tam olarak öyle değil. Decimal'in amacı daha hassas hesaplamalarda kullanılmak olduğundan range'i double'a göre daha düşük.

    "Because the decimal type has more precision and a smaller range than both float and double, it's appropriate for financial and monetary calculations."

    C# type/keyword Approximate range Precision .NET type
    float ±1.5 x 10−45 to ±3.4 x 1038 ~6-9 digits System.Single
    double ±5.0 × 10−324 to ±1.7 × 10308 ~15-17 digits System.Double
    decimal ±1.0 x 10-28 to ±7.9228 x 1028 28-29 digits System.Decimal

    https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/floating-point-numeric-types

     


    0x62 0x75 0x6e 0x75 0x20 0x79 0x61 0x7a 0x61 0x6e 0x20 0x74 0x6f 0x73 0x75 0x6e 0x2c 0x20 0x6f 0x6b 0x75 0x79 0x61 0x6e 0x61 0x20 0x6b 0x6f 0x73 0x75 0x6e
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    JPriest
    JPriest's avatar
    Kayıt Tarihi: 09/Mart/2007
    Erkek

    Bu tür işler için recursion daha temiz yöntem. Gerçi her türlü yöntem goto kullanmaktan iyidir. Bi incele istersen hocam.


    Sen hiç kaval çaldın mı?
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek
    JPriest bunu yazdı

    Bu tür işler için recursion daha temiz yöntem. Gerçi her türlü yöntem goto kullanmaktan iyidir. Bi incele istersen hocam.

    recusive gerek yokki iteratif olarak da alabilir go to yerine ? 


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ltcelik
    ltcelik's avatar
    Kayıt Tarihi: 11/Mayıs/2007
    Erkek

    Çoktandır uğraşmıyorum ama DECİMAL ile DOUBLE farklı şeylerin "ayarı".. 

    büyük haneli sayılarla işlem yaparken değişik alt yordamlar kullanılıyor örnek pi sayısının 14534. basamaklı hali nedir yada hali nedir gibi..

    40! de zaten çok haneli bir sayı olduğu için hata veriyordur...

    8.159.. E47 

    48 (desimal) basamaklı bir sayı kaç byte ile tutulur

    Matematik ve Mühendislik.. kahretsin yine karşınıza çıktı..


    Din Kitaplarını Okuyup Anlayana Ateist, Okuyup Anlamayanlara "dindar" denir... Nikola TESLA.. ben mi? Ne okurum ne anlarım... Kendi kendime de uyuz oluyorum ama olamıyorum.. "Ama efsaneyi çıkarıp atarsan ve yaptıkları eylemlere bakarsan... ..Jedi'ların mirası başarısızlıktır. İkiyüzlülüktür, kibirdir."
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NmC
    NmC's avatar
    Kayıt Tarihi: 23/Kasım/2008
    Erkek
    JPriest bunu yazdı

    Bu tür işler için recursion daha temiz yöntem. Gerçi her türlü yöntem goto kullanmaktan iyidir. Bi incele istersen hocam.

    Goto konusuna katiliyorum da, iteratif bir sekilde yazilinca anlasiliyor ise bir kodu recursive yazmanin alemi yok. Sonucta araya bir katman daha eklemis oluyoruz. Sonucta bilgisayar iteratif calisan bir sistem :)


    There are 10 types of people in the world. Those who knows binary and those who dont...
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek
    NmC bunu yazdı
    JPriest bunu yazdı

    Bu tür işler için recursion daha temiz yöntem. Gerçi her türlü yöntem goto kullanmaktan iyidir. Bi incele istersen hocam.

    Goto konusuna katiliyorum da, iteratif bir sekilde yazilinca anlasiliyor ise bir kodu recursive yazmanin alemi yok. Sonucta araya bir katman daha eklemis oluyoruz. Sonucta bilgisayar iteratif calisan bir sistem :)

    Arasıra mezarından çıkıp geliyon ha sende :D


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Yazilimci
    Yazilimci's avatar
    Kayıt Tarihi: 01/Şubat/2014
    Erkek
    Https bunu yazdı

    Decimal ve hataya düşen kodlar;

    https://paste.ubuntu.com/p/K6C246kCHg/

    Double hatasız çalışıyor;

    https://paste.ubuntu.com/p/qRhbhXn46x/

     

    3-5 gibi değerlerde sorunsuz çalışıyor decimal ile ancak 40 değeri girildiğinde program hataya düşüyor şu haliyle.

    Veri tiplerini double dönüştürünce sorunsuz çalışıyor. Ancak decimal'de iken program "OverflowException" hatasına düşüyor. Sebebi nedir. Decimal veri tipi double'dan çok daha büyük değil mi?

    Değil hocam. Sayıların piri double. Zaten aldığın hata aşırı yük hatası. Double, decimal dan daha büyük rakamları taşır. Hatta float bile decimal dan daha fazla taşır.


    Titanyumun gücü adına!!!
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Https
    Https's avatar
    Kayıt Tarihi: 05/Ağustos/2017
    Erkek
    Yazilimci bunu yazdı
    Https bunu yazdı

    Decimal ve hataya düşen kodlar;

    https://paste.ubuntu.com/p/K6C246kCHg/

    Double hatasız çalışıyor;

    https://paste.ubuntu.com/p/qRhbhXn46x/

     

    3-5 gibi değerlerde sorunsuz çalışıyor decimal ile ancak 40 değeri girildiğinde program hataya düşüyor şu haliyle.

    Veri tiplerini double dönüştürünce sorunsuz çalışıyor. Ancak decimal'de iken program "OverflowException" hatasına düşüyor. Sebebi nedir. Decimal veri tipi double'dan çok daha büyük değil mi?

    Değil hocam. Sayıların piri double. Zaten aldığın hata aşırı yük hatası. Double, decimal dan daha büyük rakamları taşır. Hatta float bile decimal dan daha fazla taşır.

    decimal stack'te bulunur ve 128 bit yer kaplar stack'te tutulan veri tipleri arasında en büyüğüdür denilince ve double 64 bit, float 32 bit diye kıyaslayınca bende ramde fazla yer kaplayan daha büyüktür diye düşündüm. Sanırım Decimal'de 128 bitin büyük kısmı ilgili sayının küsuratını tutuyor fakat tam kısım double ve float'a göre küçük kalıyor.

     

     

  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NmC
    NmC's avatar
    Kayıt Tarihi: 23/Kasım/2008
    Erkek
    MhmdAlmz bunu yazdı
    NmC bunu yazdı
    JPriest bunu yazdı

    Bu tür işler için recursion daha temiz yöntem. Gerçi her türlü yöntem goto kullanmaktan iyidir. Bi incele istersen hocam.

    Goto konusuna katiliyorum da, iteratif bir sekilde yazilinca anlasiliyor ise bir kodu recursive yazmanin alemi yok. Sonucta araya bir katman daha eklemis oluyoruz. Sonucta bilgisayar iteratif calisan bir sistem :)

    Arasıra mezarından çıkıp geliyon ha sende :D

    Yok hep buralardayim da, yazmaya useniyorum :) Is guc firsat olmuyor :P


    There are 10 types of people in the world. Those who knows binary and those who dont...
Toplam Hit: 2040 Toplam Mesaj: 10
c#