Elm:
עיגול מספרים
איך לעשות:
מודול Basics
של Elm מספק פונקציות חכמות לעיגול: round
, floor
, ו-ceiling
. הנה איך להשתמש בהן.
import Basics exposing (round, floor, ceiling)
-- לעגל לספרה השלמה הקרובה ביותר
round 3.14 --> 3
round 3.5 --> 4
-- לעגל כלפי מטה
floor 3.999 --> 3
-- לעגל כלפי מעלה
ceiling 3.001 --> 4
-- להשמיט ספרות עשרוניות בלי לעגל
truncate 3.76 --> 3
Elm גם מספק את toLocaleString
לעיגול למספר קבוע של מקומות עשרוניים:
import Float exposing (toLocaleString)
-- לעגל לשני מקומות עשרוניים
toLocaleString 2 3.14159 --> "3.14"
נפילה לעומק
Elm הוא שפת תכנות פונקציונלית בעלת טיפוסיות חזקה שמסתמכת על תופעות לוואי של הארכיטקטורה ב"קצוות". זה אומר שפונקציות כמו עיגול חייבות להיות טהורות וניבויות. הסטורית, עיגול הוא פעולה נפוצה בשפות תכנות רבות שעוסקות בחוסר הדיוק של אריתמטיקת מספרים עשרוניים נקודה צפה.
גישת Elm לעיגול היא ישירה - הפונקציות טהורות ונאמנות להגדרות המתמטיות של עיגול, קרקע ותקרה. Elm מנבא את הצרכים הנפוצים על ידי הצעת פונקציות מובנות, מכיוון שניהול דיוק הוא דרישה נפוצה, במיוחד בתחום האופנה והגרפיקה.
אלטרנטיבות לפונקציות המובנות של Elm יכולות לכלול יישומים מותאמים אישית באמצעות פעולות אריתמטיות, אבל זה מוסיף מורכבות מיותרת כאשר הספרייה הסטנדרטית כבר עושה את העבודה ביעילות.
בגרסה הנוכחית, Elm משתמשת במתמטיקה של מספרים עשרוניים נקודה צפה של JavaScript לפעולות אלו, ולכן נשארת עקבית עם התקן IEEE 754, דבר שכדאי לזכור כאשר מתחשבים בדיוק ובטעויות פוטנציאליות של נקודה צפה.
ראה גם
- תיעוד המודול
Basics
הרשמי של Elm: https://package.elm-lang.org/packages/elm/core/latest/Basics - מבט מעמיק אל תוך האופן שבו מספרים עשרוניים נקודה צפה פועלים במחשוב: https://floating-point-gui.de/
- מודול
Float
של Elm ליותר פעולות עם מספרים עשרוניים נקודה צפה: https://package.elm-lang.org/packages/elm/core/latest/Float