למה אצלנו אין חצי אגורה
437.60 כפול 100 במחשב רגיל הוא 43759.99999999... לא 43760. טעות עיגול זעירה כזאת, שחוזרת על עצמה אלפי פעמים, הופכת עם הזמן ליתרה שאף אחד לא יודע להסביר. איך נמנעים מזה מהיסוד.
יש באג קלאסי בכל מערכת שמתעסקת בכסף, והוא כל כך נפוץ שיש לו שם: שגיאת עיגול צפה. הגרסה הפשוטה שלו נשמעת כמעט אבסורדית - איך יכול להיות שמחשב לא יודע לכפול 437.60 ב-100?
התשובה היא שהוא כן יודע, אבל לא בדיוק בצורה שאתם חושבים.
הבאג שנראה בלתי אפשרי
מספרים עם נקודה עשרונית נשמרים במחשב בשיטה שלא תמיד מייצגת אותם במדויק - זו תכונה מובנית של איך מחשבים מטפלים בשברים, לא תקלה. התוצאה: 437.60 כפול 100 יכול לצאת 43759.999999999996, לא 43760 העגול. אם מעגלים כלפי מטה בשלב הזה, מאבדים בדיוק אגורה אחת - ובלי שאיש שם לב.
הפתרון: לא לכפול בכלל
הדרך להימנע מהבעיה היא לא "לעגל טוב יותר" - היא לא להגיע למצב שבו יש בכלל הכפלה בעייתית. הסכום מפורק כטקסט לחלק השלם ולחלק העשרוני בנפרד, ואז מומר למספר שלם של אגורות ישירות, בלי לעבור דרך כפל שעלול לייצר את אי-הדיוק מלכתחילה. מרגע שהסכום הוא מספר שלם של אגורות, כל חישוב עליו - חיבור, חיסור, עיגול - מדויק באופן מוחלט.
אותו עיקרון, גם בחלוקה בין כמה ילדים
הבעיה חוזרת בצורה אחרת כשמחלקים סכום עיגול בין כמה יעדי חיסכון פעילים. חלוקה "הוגנת" באחוזים, עם עיגול של כל חלק בנפרד, יכולה לגרום לכך שסכום החלקים לא שווה בדיוק לסכום המקורי - אגורה נעלמת או מופיעה משום מקום. הפתרון: חלוקה שלמה בין החלקים, כשהשארית שלא מתחלקת שווה הולכת למספר קבוע ועקבי של יעדים ראשונים - כדי שסכום כל החלקים יהיה תמיד, בלי יוצא מן הכלל, זהה לסכום המקורי.
למה זה משנה יותר ממה שנראה
חצי אגורה בודדת לא משנה לאף משפחה בפועל. מה שכן משנה זה אמון: יתרה שלא מסתכמת נכון, גם בפרוטות, יוצרת תחושה שהמערכת "לא באמת יודעת לספור" - וברגע שהתחושה הזאת נכנסת, קשה להחזיר אמון בכל מספר אחר שהמערכת מציגה. דיוק מוחלט בכסף הוא לא פינוק הנדסי - הוא תנאי בסיסי לכך שמשפחה תסמוך על המספרים שהיא רואה.
שאלות נפוצות
זה אומר שאין בכלל אגורות במערכת, רק שקלים שלמים?
לא - האגורה היא בדיוק היחידה שהמערכת עובדת בה. מה שאין הוא חצאי אגורה שנוצרים מטעות חישוב - כל סכום הוא מספר שלם ומדויק של אגורות, בלי שברים מתחתיו.
למה זה לא פשוט "עוד פרט טכני" שאפשר להתעלם ממנו?
כי בכסף, גם טעות זעירה שחוזרת על עצמה מספיק פעמים הופכת לפער אמיתי לאורך זמן - ופער שאי אפשר להסביר במערכת שאמורה לנהל כסף משפחתי הוא בדיוק סוג התקלה שהופכת אנשים לחשדנים כלפי כל שאר המספרים.
הדיוק הזה עומד מאחורי כל שקל שמוצג בהון בקליק.