בדוגמתך, כאילו כתבת: ((x = (float)((int)1 / (int3
הביטוי הנ"ל שקול לביטוי (x = (float)(0, כלומר x = 0.0.בכל חישוב, הטיפוס של התוצאה יהיה מן הטיפוס הכי מסובך שמשתתף בחישוב. בדוגמה שלך שני הביטויים הם מסוג int, ולכן, התוצאה שבסוגריים תהיה גם היא int, אולם רשמת בתוך סוגריים float, ולכן, הימרת את התוצאה ב-int ל-float, ולכן במקום 0, קיבלת 0.0.
כדי לחשב נכון, אתה יכול לעשות כך:
x = 1.0 / 3 או x = (float)1 / 3
x = 1 / 3.0 או x = 1 / (float)3
x = 1.0 / 3.0 או x = (float)1 / (float)3
נראה לי שהבנת...