C'è stata una storia nelle notizie su un uomo il cui conto Paypal è stato accidentalmente accreditato con $ 92.233.720.368.547.800.
Da dove viene questo numero? Che tipo di bug di programmazione può generare questo numero?
C'è stata una storia nelle notizie su un uomo il cui conto Paypal è stato accidentalmente accreditato con $ 92.233.720.368.547.800.
Da dove viene questo numero? Che tipo di bug di programmazione può generare questo numero?
Risposte:
È il valore massimo di un lungo (tipo integrale con segno a 64 bit).
da http://msdn.microsoft.com/en-us/library/system.int64.maxvalue.aspx
Il valore di questa costante è 9.223.372.036.854.775.807; cioè, esadecimale 0x7FFFFFFFFFFFFFFF.
Questo sarebbe il valore massimo per un tipo integrale con segno a 64 bit in qualsiasi lingua, non presumo che paypal usi .NET, il collegamento a MSDN sopra è solo illustrativo.
L'errore è probabilmente solo uno scarso errore di conversione (come da decimale o float o ecc. A lungo che non ha funzionato correttamente) con conseguente overflow di un valore o codice di default errato per qualche strano scenario, o avrebbe potuto essere un test in produzione dal loro team di ingegneria / QA andato filo di fieno. Perdita di memoria / errore del puntatore, l'elenco dei modi per causarlo è davvero infinito. Potrebbe essere stato un errore di analisi che deserializzava alcune informazioni che arrivavano loro attraverso il filo, tremendamente numerosi modi per finire accidentalmente con un valore integrale inatteso o disallineato.