09-11-2007, 07:35
|
|
|
חבר מתאריך: 31.03.02
הודעות: 400
|
|
יש בעיה קטנה בתשובתך
יש בעיה קטנה עם הערך התחתון. אם פותח האשכול מעוניין גם במספרים שליליים, אז התוצאה לא תהייה בדיוק לפי ההגדרה שלו, כי הערך התחתון של 3.35- הוא דווקא 4- ולא 3-. עבור מספרים שליליים, הוא דווקא צריך את הערך העליון ולא התחתון.
בשפת תיכנות הכי פשוט לבצע את הפעולה ע"י הפיכת המספר למספר שלם. ברוב שפות התיכנות לפי ברירת המחדל הפעולה הזאת פשוט תסיר את כל הספרות אחרי הנקודה, בהנחה שסוג הנתונים מספיק גדול כדי להכיל את כל המספר. לדוגמא ב-C:
קוד:
double x = 3.35;
int integer = (int) x;
כמו שאמרו לך, ניתן להשתמש בפונקציה floor, אבל היא תעבוד נכון רק עבור מספרים חיוביים ואפס. אתה יכול לבדוק אם המספר שלילי, ואז להשתמש בערך העליון, שהוא בד"כ נקרא ceil או ceiling, אבל כעיקרון אין טעם בלעשות משהו כזה, כשכל מה שאתה צריך לעשות זה להפוך את סוג הנתונים של המשתנה. כמובן, את התשובה שלי אני כתבתי בהנחה שאתה פשוט מעוניין בחלק השלם, ולא לפי ההגדרה של הערך התחתון.
נערך לאחרונה ע"י LinkBomber בתאריך 09-11-2007 בשעה 07:37.
|