פונקציית המספרים השלמים הקרובה ביותר ב- Python

אולי מעיד על המוניטין שלה כשפת תכנות חזקה וגמישה, Python מכיל ספריות פנימיות רבות לאוטומציה של משימות חישוביות ומתמטיות נפוצות או מורכבות. "ספריית המתמטיקה" מכילה שיטות רבות לביצוע חישובים או פעולות אופייניות כגון עיגול. עם זאת, עיגול עשרונים ב-Python אינו מעגל למספר שלם, אלא עשרוני שלם. המרה למספרים שלמים דורשת שימוש בספריית המתמטיקה של Python יחד עם שימוש במספר ספריות המרה מובנות.

פייתון ועיגול

ספריית המתמטיקה של Python מציעה חבילה של שיטות שימושיות לעיגול מספרים עשרוניים למספרים שלמים. אתה יכול לעגל מספר בדרך המסורתית (למטה למספר השלם הקרוב ביותר עבור חלקים שברים ב-.4 או נמוך יותר, ולמעלה עבור חלקים .5 ומעלה) באמצעות שיטת "round()". הדוגמה הבאה מראה כיצד לעגל מספרים עשרוניים בשיטת העיגול:

סרטון היום

f = 5.455 >>>עגול (ו) 5.0 >>>עגול (f, 2) //עגול ל-2 עשרוניים 5.46

שיטות תקרה ורצפה

כחלק מספריית המתמטיקה, שיטות ה-"floor()" ו-"ceil()" מספקות דרך ייחודית לעיגול עשרוניים שעשוי למצוא שימושי בחישובים מסוימים. שיטת הרצפה מתעגלת כלפי מטה למספר השלם הפחות קרוב לכיוון אינסוף שלילי (ללא קשר ל הערך העשרוני), ושיטת התקרה תעגל כלפי מעלה למספר השלם הקרוב ביותר לכיוון חיובי אינסוף. הדוגמה הבאה מציגה כיצד פועלות שתי הפונקציות:

ייבוא ​​מתמטיקה >>>f = 3.5 >>>g = -3.5 >>>קומה (f) 3.0 >>>תקרה (3.5) 4.0 >>>רצפה (ג) -4.0 >>>תקרה (ג) -3.0

עיגול ושלמים

פעולות העיגול המוצגות מראות כיצד הפונקציות הללו פועלות, אך הן מציגות גם תופעת לוואי: בגרסאות Python לפני 3.0, עשרונים מעוגלים אינם מעוגלים למספרים שלמים, אלא עשרוניים. בגלל האופן שבו מיוצגים עשרוניות על ידי ארכיטקטורות מחשב, הדבר עלול לגרום לבעיות בחישובים בעלי דיוק גבוה שבהם מתכנתים עשויים לדרוש מספרים שלמים. אתה יכול להמיר מספר צף למספר שלם באמצעות שיטת "int()", כמו בדוגמה זו:

f = 3.5 >>>עגול (ו) 4.0 >>>int (עגול (ו)) 4

שיטה לדוגמה

בעזרת הידע הזה, אתה יכול לפתח שיטה לעגל בקלות מספרים עשרוניים למספרים שלמים. הדוגמאות הבאות מציגות דוגמאות קצרות של שיטות הקובעות את הרצפה והתקרה של מספר כמספר שלם, ואחרת שמתעגלת למקום עשרוני המיועד על ידי המשתמש (או למספר שלם):

ייבוא ​​מתמטיקה >>>בגדר מספר שלםFloor (x):... return int (קומה (x)) >>>def integerCeiling (x):... return int (תקרה (x)) >>>עיגול הגדרה (x, dec):... אם ירידה == 0:... return int (עגול (x))... אַחֵר:... חזרה (עגול (x, ירידה))