וכמובן ש-Y יכיל (כביכול, לאחר ביצוע הוראה זו) את המספר המבוקש 1.28דבר אחד שאתה צריך להבין, זה שהמחשב עובד לפי בסיס מסויים - בסיס בינארי (0 או 1).
למעשה, כשאתה שומר ב-Y, אשר מוגדר כ-Real, את המנה 9 / 7, או אפילו את המספר 1.28, אתה בעצם שומר את הקירוב שלו, אשר מוערך בבסיס בינארי.
למה התכוון המשורר?
Real, זהו טיפוס נתונים אשר נלקח מהגדרות קבועות שיש במערכת-ההפעלה (אשר נקבעו לכל מערכות-ההפעלה ע"י תקן IEEE). מכיוון שהמחשב עובד בבינארי, מה שנשמר ב-Real הוא המספר עצמו, ומספר המקומות להזזה של הנקודה הבינארית (כמו לכפול את המספר ב-2 בחזקת מספר המקומות להזזה). לכן, עבור "מספרים מסובכים" נשמר איזשהו קירוב שניתן אפשר לייצג בבסיס הבינארי. הכלל אומר שאם המספר שאחרי הנקודה הצפה הוא לא מנה של חזקה מסויימת של 2, אז לא יהיה ניתן לייצג את המספר במדוייק במחשב, לפחות לא בצורת הייצוג שנחברה (כמו Real).
לכן, כשהדפסת את ערכו של Y, קיבלת מספר מן השמיים... משהו ארוך ולא מובן (מה גם שב-Pascal, הדפסה פשוטה מדפיסה את הערך המנורמל, כלומר עם תוספת של כפולה ב-10 בחזקת X)...
בעצם, זהו הקירוב שאליו מצליח להגיע המחשב...
בסופו של דבר, כשתשמור ב-Y את 1.28, ותדפיס אותו כך שיציג רק שתי ספרות אחרי הנקודה, אתה תקבל 1.28, ולא קירוב כזה או אחר... אבל זוהי רק הדפסה של המספר... אין זה הערך המקורי שלו...
אתה לא באמת צריך להתייחס לזה, בייחוד לא כשאתה עובד במשימות פשוטות שלא דורשות התערבות גדולה מדי בנעשה "מאחורי הקלעים", מה גם ש-Pascal לא הכי ידידותית כשמדובר בהתערבות בכך (בניגוד ל-C למשל).
מקווה שהבנת...