-
שלום וברכה,
יצרתי קוד קטן שאמור לבצע חישוב ע"ג הדפדפן, עם ערכי ברירת מחדל 1 ו 2.
בפועל הקוד לא עובד, והתוצאה היא 12 במקום 3.
השאלה איפה הטעות
תודה רבה
מצורף הקוד:let a = prompt("First number?", 1); let b = prompt("Second number?", 2); alert(a + b); -
@מאיר-הנאו הבעיה בקוד שקופה, ולכן הפתרון עבורה יהיה מאוד קל.
הסיבה שהקוד לא עובד היא כיוון שההנחיה שכתבת מחזירה לדפדפן את הקלט שהמשתמש מזין כמחרוזת (סטרינג), וזה בגלל המילה prompt שגורמת לדפדפן לחשוב שמדובר במחרוזת, ולא במספר, ולכן הוא מפענח את הקוד ככה:let a = "1"; let b = "2"; alert(a + b); וכיוון שכן, כשיש לדפדפן שני מחרוזות שמכילות מספר הוא מחבר את שני המספרים יחד, ונותן תוצאה שגויה של 12.
למעשה מה שאתה צריך לעשות זה להמיר את המחרוזת למספר (אתה יכול לעשות את זה במשתנה עצמו, ואתה יכול לעשות את זה בחלונית שקופצת).
המרת מחרוזת למספר נעשית בצורה פשוטה עם + (Unary plus) לפני המחרוזת, אם אכן תוסיף + לפני המחרוזת, תקבל משהו כזה שאמור לעבוד:let a = +prompt("First number?", 1); let b = +prompt("Second number?", 2); alert(a + b); -
צדיק תמיםהשיב לElhanan ב 4 במאי 2022, 14:54 נערך לאחרונה על ידי צדיק תמים 5 באפר׳ 2022, 14:58
@יושב-אוהלים אמר בעזרה בקוד js:
כיוון שההנחיה שכתבת מחזירה לדפדפן את הקלט שהמשתמש מזין כמחרוזת טקסט, וזה בגלל הסימון "" שגורם לדפדפן לחשוב שמדובר במחרוזת טקסט ולא באופרטור
ליתר דיוק בגלל ש
prompt
מחזיר תמיד סטרינג.
אגב לא הכרתי את השימוש בUnary plus להמרת סטרינג למספר, תמיד השתמשתי בparseInt
עריכה: נראה שיש יתרונות לכאן ולכאן - לדוגמה צורת הטיפול במספר עשרוני (יש בקישור הנ"ל טבלה מקיפה) :
-
@צדיק-תמים יש דרך לעגל תמיד את המספר לכיוון למעלה/למטה?
לדוגמא, שאם אני יכתוב 3.4 זה יתעגל לשלש, ואם אני יכתוב 3.6 זה יתעגל ל4.
יש דבר כזה? תודה רבה! -
צדיק תמיםהשיב למאיר הנאו ב 4 במאי 2022, 20:22 נערך לאחרונה על ידי צדיק תמים 5 באפר׳ 2022, 21:11
@מאיר-הנאו ()Math.round
חיפוש גוגל פשוט באנגלית היה מביא לך את התשובה בקלות רבה... (אפשר להיעזר בגוגל טרנסלייט) -
4/5