Haberlerde , Paypal hesabı yanlışlıkla 92,233,720,368,547,800 ABD Doları tutarında kredilendirilen bir adam hakkında bir hikaye var .
Bu numara nereden geliyor? Bu sayıya ne tür bir programlama hatası neden olabilir?
Haberlerde , Paypal hesabı yanlışlıkla 92,233,720,368,547,800 ABD Doları tutarında kredilendirilen bir adam hakkında bir hikaye var .
Bu numara nereden geliyor? Bu sayıya ne tür bir programlama hatası neden olabilir?
Yanıtlar:
Uzun bir değerin maksimum değeridir (64 bit işaretli integral tipi).
dan http://msdn.microsoft.com/en-us/library/system.int64.maxvalue.aspx
Bu sabitin değeri 9,223,372,036,854,775,807; yani, onaltılık 0x7FFFFFFFFFFFFFFFFF.
Bu, herhangi bir dilde 64-bit işaretli bir integral türü için maksimum değer olacaktır, paypal'ın .NET kullandığını varsaymıyorum, yukarıdaki MSDN bağlantısı sadece açıklayıcıdır.
Hata, sadece bir değerin taşması veya bazı garip bir senaryo için hatalı bir varsayılan kodun taşmasıyla sonuçlanan kötü bir dönüşüm hatası olabilir (ondalık veya kayan nokta vb. kendi mühendisliği / QA ekibi tarafından üretimde saman teli gitti. Bellek sızıntısı / işaretçi hatası, buna neden olan yolların listesi gerçekten sayısız. Tel üzerinden gelen bazı bilgileri seri hale getiren bir ayrıştırma hatası olabilirdi, yanlışlıkla beklenmedik veya yanlış hizalanmış bir integral değeriyle sonuçlanacak çok sayıda yol.