Ada berita dalam berita tentang seorang pria yang akun Paypalnya secara tidak sengaja dikreditkan dengan $ 92.233.720.368.547.800.
Dari mana asal nomor ini? Bug pemrograman macam apa yang mungkin menyebabkan angka ini?
Ada berita dalam berita tentang seorang pria yang akun Paypalnya secara tidak sengaja dikreditkan dengan $ 92.233.720.368.547.800.
Dari mana asal nomor ini? Bug pemrograman macam apa yang mungkin menyebabkan angka ini?
Jawaban:
Ini adalah nilai maksimum panjang (tipe integral bertanda 64 bit).
dari http://msdn.microsoft.com/en-us/library/system.int64.maxvalue.aspx
Nilai konstanta ini adalah 9.223.372.036.854.775.807; yaitu, 0x7FFFFFFFFFFFFFFFFFFF heksadesimal.
Ini akan menjadi nilai maksimum untuk tipe integral bertanda tangan 64-bit dalam bahasa apa pun, saya tidak berasumsi menggunakan paypal .NET, tautan ke MSDN di atas hanyalah ilustrasi.
Kesalahan tersebut kemungkinan hanya kesalahan konversi yang buruk (seperti dari desimal atau float atau dll hingga lama yang tidak berfungsi dengan benar) yang mengakibatkan beberapa nilai meluap, atau kode default yang buruk untuk beberapa skenario aneh, atau bisa saja tes dalam produksi oleh tim engineering / QA mereka kehilangan daya. Memori kebocoran / kesalahan pointer, daftar cara untuk menyebabkan ini benar-benar tak terhitung Bisa jadi kesalahan penguraian deserializing beberapa informasi yang datang kepada mereka di kawat, banyak cara untuk secara tidak sengaja berakhir dengan nilai integral yang tak terduga atau tidak selaras.