
(int) salary. הקומפיילר מאשר את הביטוי.(int) הערך העשרוני נחתך. הערך 10,000.3 וגם 10,000.9 הופכים ל-10,000. העיגול תמיד כלפי מטה.Math.ceil ואחריו (int). הפונקציה מחזירה double, ולכן גם היא צריכה המרה.short לא מכיל מעל כ-32,000. הכנסת 33,000 דרך (short) מוצגת כערך שלילי, מינוס 32,536.byte מחזיק ממינוס 128 עד 127. הוספה מעל 127 מגלגלת את הערך למינוס 128, ו-129 מגלגל למינוס 127.הטקסט המלא של הדקות הראשונות בהרצאה «Explicit Casting» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
הסוג הבא שראינו היה Explicit Casting. בואו נראה איך זה מתבצע. ניקח Double Salary, ניקח איזשהו אינטג'ר בשביל לבצע המרה של ה-Salary או עיגול של ה-Salary, בואו נגיד גם למעלה וגם למטה.
נתחיל עם Lower Rounded Salary וניקח עוד אחד של Upper Rounded Salary. נניח שאנחנו רוצים לעגל את המשכורת גם למעלה וגם למטה נראה איך זה מתבצע. נכניס לתוך salary ערך מהuser מהמשתמש אז יש לנו פה scanner console שווה new scanner system.in נסגור פה בסוף את ה-console ואז המערכת תגדיר לנו פה למעלה את ה-import שלו
ונגדיר דרך הקונסול נקודה next double. נאמר ליוזר please enter your salary והנה קלטנו מהיוזר את המשכורת שלו. עכשיו אנחנו רוצים לבוא ל-lower rounded salary ולהכניס את ה-salary וגם ל-upper rounded salary להכניס את ה-salary.
כמו שאנחנו רואים המערכת לא מאשרת לעשות את זה, הקומפיילר לא מסכים מכמה סיבות. דבר ראשון, W יכול להחזיק מידע הרבה יותר גדול מאשר המידע שיכול להיכנס בתוך אינטג'ר.
דבר שני, W בכלל יכול להחזיק נקודה עשרונית, ואינטג'ר לא יכול להחזיק מידע עם נקודה עשרונית. אז מה שאנחנו צריכים לבצע זה פשוט פעולה שנקראת Explicit Casting, וזה פשוט לכתוב בסוגריים לפני המשתנה את הסוג אליו אנחנו רוצים לבצע את ההמרה, Int.
שימו לב שאוטומטית זה מאושר לנו אם נעשה את אותו הדבר גם כאן אנחנו נקבל את שניהם מבחינת הקומפיילר כקוד חוקי בואו נציג את שניהם נציג גם את הסלארי נציג גם את הלואוור ראונדד ונציג גם את האפר ראונדד סלארי נריץ נכניס איזושהי משכורת על ידי המשתמש בוא נניח 10,000.3 ומה שקיבלנו זה המשכורת המקורית
היא 10,000.3 אבל הצלחנו להכניס אותה לתוך אינטג'ר ובשני המקרים היא עוגלה למטה. שוב פעם בואו נראה רגע זה הסלארי זה הלואוור ראונדד וזה האפר ראונדד נריץ 10,000.3 הנה הסלארי המקורית כאשר אנחנו מעגלים את זה על ידי אינט או מבצעים ליתר דיוק קאסטינג, explicit casting על ידי אינט, אז אנחנו רואים שהוא אוטומטית עיגל לנו את
זה למטה. אולי הוא עיגל למטה בגלל שזה היה 0.3 ואם זה 0.9 אז הוא יעגל למעלה? בואו נראה. נכניס 10,000.9, אולי הוא יעגל את זה ל-10,001?
לא, הוא עיגל תמיד למטה. זאת אומרת ברגע שאנחנו משתמשים עם explicit casting בצורה כזאת ושמים int או byte או long או short תמיד העיגול מתבצע כלפי מטה. זאת אומרת במקרה הזה זה מתאים לנו אבל במקרה הזה זה לא יתאים לנו.
אם נזכר נראה שבאחד הסרטונים הייתה לנו פונקציה שנקראת math.ceiling או math.floor ואם אנחנו ניקח את math.floor, הנה היא פה, אז אנחנו יכולים לקחת את ה-salary, האמת זה לא math.floor אני רוצה, אני רוצה math.sealing, לקחת את ה-salary, לעגל אותה כלפי מעלה, ואז להשתמש ב-casting של int. אם אנחנו לא נשתמש ב-casting של int,
אנחנו נראה שיש לנו פה איזושהי בעיה, מפני שהפקודה סילינג מחזירה דאבל. אנחנו יכולים לראות את זה כאן. אנחנו יכולים לראות שפקודה סילינג, כתוב לנו פה, מחזירה דאבל.
אי אפשר להכניס דאבל לאינטג'ר בצורה ישירה, ולכן גם פה אנחנו צריכים לבצע קאסטינג. זאת אומרת שאנחנו יכולים להשתמש גם בפקודות מערכת, אבל אם הן מחזירות דאבל אנחנו יכולים לבצע אקספליסיט קאסטינג ולהמיר גם אותם.
בואו נריץ נכניס 1003 נקבל הנה עיגול כלפי מטה על ידי אינט רגיל הנה עיגול כלפי מעלה על ידי סילינג ואז אינט והנה המחוזת המקורית המשכורת המקורית בואו נשים פה 1009 ונראה שוב פעם משכורת