C# | המרה בין טיפוסי משתנים
-
כמו שראינו במדריך הקודם שאם מכניסים לתוכנית את הקלטים 3 ו8 התוצאה תהיה 5.0 ולא 5.5
התשובה היא שכמו שכתבתי פה למטה בפעולות חשבון שאם המחלק והמתחלק הם מספרים שלמים התוצאה תהיה גם מספר שלם ולכן התוכנה נותנת תוצאה לא נכונה
עכשיו נלמד איך לפתור את הבעיה נכתוב את הדרך המומלצת:
במקום לכתוב את השורה מספר 7 כך:s = (t1+t2)/2;
נכתוב אותה כך:
s = (double) (t1+t2)/2;
הסבר עכשיו המרנו את המשתנים t1 וt2 לטיפוס ממשי (double) ולכן התוצאה תהיה 5.5 כי הם מספרים ממשים ומספר ממשי חלקי ממשי =מספר ממשי
עכשיו נגיע להמרה בין עוד טיפוסי נתונים!המרה
אנחנו נמיר בין 3 טיפוסי נתונים בלבד int,double,char
int ל doubleint t = 5; double f; f= t;
שורה 1 הצהרנו על משתנה בשם t מטיפוס int ונתנו לו ערך 5
שורה 2 הצהרנו על משתנה בשם f מטיפוס double
שורה 3 העתקנו את הערך של t לf עכשיו f שווה 5.0
int לcharint t = 97; char g; g = (char)t;
שורה 1 הצהרנו על משתנה בשם t מטיפוס int ונתנו לו ערך 97
שורה 2 הצהרנו על משתנה בשם g מטיפוס char
שורה 3 המרנו את הערך של t והעברנו אותו לg עכשיו הערך של g הוא התו ששווה את המספר על פי טבלת unicode במקרה שלנו האות “a”
double לintdouble f; int t f = 4.4 f = (int)t
שורה 1 הצהרנו על משתנה בשם f מטיפוס double
שורה 2 הצהרנו על משתנה בשם t מטיפוס int
שורה 3 נתנו ערך למשתנה f עכשיו הוא שווה 4.4
שורה 4 המרנו את הערך של f לt עכשיו t שווה 4 בגלל שt הוא מטיפוס שלם ולכך כשהמרנו את הערך של t ל int הוא התעגל ל4
double לchardouble f; char c; f = 97.4; c = (char)f;
שורה 1 הצהרנו על משתנה בשם f מטיפוס double
שורה 2 הצהרנו על משתנה בשם c מטיפוס char
שורה 3 נתנו ערך למשתנה f עכשיו הוא שווה 97.4
שורה 3 המרנו את הערך של f והעברנו אותו לc עכשיו הערך של c הוא התו ששווה את המספר המעוגל על פי טבלת unicode במקרה שלנו האות “a” בגלל שהמספר התעגל ל97
char לintchar c = "a"; int t; t = c;
שורה 1 הצהרנו על משתנה בשם c מהטיפוס char ונתנו לו ערך את האות a
שורה 2 הצהרנו על משתנה בשם t מטיפוס int
שורה 3 הכנסנו את הערך המספרי של האות a על פי טבלת unicode שזה 97 למשתנה t
char לdoublechar c = "a"; double f f = (double)c
שורה 1 הצהרנו על משתנה בשם c מהטיפוס char ונתנו לו ערך את האות a
שורה 2 הצהרנו על משתנה בשם f מטיפוס double
שורה 3 המרנו את הערך המספרי מהמשתנה c למשתנה f עכשיו המשתנה f שווה 97
בהצלחה!
אם יש שאלות ניתן להגיב או בצאט או בפוסט (אם אפשר לפתוח פה @Men770 ?)
כמו כן אשמח לדעת בשביל לדעת אם לכתוב עוד מדריכים (משפטי תנאי,עצמים וכו’) אם יש כאלה שרוצים ללמוד או שחבל לי על הזמן
תודה רבה!