יש פונקציות בשם rint, ו-nearbyint שמעגלות מספרים. יש שם כל מיני דקויות של כיון העיגול (רלבנטי בעיקר למספרים שליליים, אני מניח). גיליתי אותן רק אתמול, אחרי ששאלת.
הסתכלתי בסטנדרטים של C ושל ++C. הפונקציות שהזכרתי סטנדרטיות ב-C99, ו-gcc אכן מממש אותן. הן לא סטנדרטיות ב-++C, כי הסטנדרט הזה מבוסס על C90. ומכאן למדתי שהקומפיילר של MS (VC7.1(, הוא קומפיילר ++C ולא קומפיילר C. מעניין...
קומפיילר טוב יתן warning ובצדק... כשאתה מכניס double לתוך int אתה מאבד מידע. אם התכוונת לאבד את המידע הזה (כמו שבמקרה הנ"ל) - אחלה... רק תציין במפורש שזה מה שהתכוונת לעשות ולא מדובר בטעות (ע"י casting מפורש). ואם לא התכוונת לאבד מידע - אז הנה הקומפיילר מחלץ אותך מבאג עתידי שבטח היה לוקח לך נצח (אם בכלל) לעלות עליו...