• בלוג
  • טיפ JavaScript - ההבדל בין trunc ל floor

טיפ JavaScript - ההבדל בין trunc ל floor

06/11/2025

כשאנחנו רוצים להפוך מספר עם נקודה עשרונית ב JavaScript למספר שלם ולמחוק את החלק שאחרי הנקודה העשרונית יש מספר פונקציות שיכולות לעזור:

parseInt(...)
Math.floor(...)
Math.round(...)
Math.trunc(...)
``

הבדלים? נשים לב:

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

```language-javascript
ynonp@ynons-MacBook-Air ~/tmp $ node
> Math.trunc(4.5)
4
> Math.trunc(4.8)
4
> Math.trunc(-4.8)
-4
> Math.trunc(-4.2)
-4
> Math.trunc("4.9")
4
> Math.trunc("4.9a")
NaN
>
  1. החברות שלה Math.round ו Math.floor מתנהגות דומה לגבי מחרוזות אבל ישנו לכם את המספר בשליליים או כשהמספר קרוב לקצה:
> Math.round(2.3)
2
> Math.round(2.8)
3
> Math.floor(4.2)
4
> Math.floor(4.8)
4
> Math.floor(-4.8)
-5
>
  1. החברה האחרונה parseInt לא תשנה את המספר אבל עלולה להתנהג מוזר אם תעבירו לה מחרוזת שמתחילה במספר ובאופן כללי עשויה להיות יותר איטית:
> parseInt(3.4)
3
> parseInt(-3.4)
-3
> parseInt(-3.8)
-3
> parseInt(3.8)
3
> parseInt("2 apples")
2

לכן הטיפ היום כשהופכים שבר למספר שלם ב JavaScript מומלץ להשתמש ב Math.trunc. הכי מהירה והכי מדויקת.