ב-1 באוגוסט 2012, Knight Capital Group איבדה 440 מיליון דולר ב-45 דקות. אחד הגורמים: קוד שעשה חישובי כספים עם float במקום עם Decimal מדויק. הקוד עבד מצוין על מאות פעולות. הוא קרס על מיליונים. כי 0.1 + 0.2 ב-Python (ובכל שפה אחרת) לא שווה 0.3 - וכשאתם מחשבים מחיר מניה כפול כמות, ההפרש של 0.000000000000004 מתחיל להצטבר.
הפסד של Knight Capital ב-45 דקות, 2012
חלק מהסיבה: float arithmetic על מחירי מניות. ה-rounding errors מצטברות במהירות שלא מאמינים.
זה לא bug ב-Python. זה IEEE 754 - הסטנדרט שמגדיר איך כל שפה מייצגת floating point בחומרה. C, Java, JavaScript - כולן נפגעות. ההבדל הוא שמפתח Python שמכיר את הטיפוסים יודע לבחור בין int, float, Decimal ו-Fraction לפי הצורך. מי שלא - מאבד 440 מיליון.