javascriptMathابزارهای Math در جاوااسکریپت
با Math در جاوااسکریپت قدرمطلق، گردکردن، سقف و کف عدد را محاسبه کنید؛ تفاوت floor، ceil، round و trunc را در مثال بستهبندی دقیق ببینید.
مفهوم به زبان ساده
Math مجموعهای از ثابتها و تابعهای عددی است که آنها را مستقیم با نام Math فراخوانی میکنیم؛ نمونهای با new Math ساخته نمیشود. برای مسئلهای مانند شمار بستههای لازم، انتخاب روش گردکردن به معنای مسئله وابسته است. اگر هر بسته ظرفیت معینی دارد و همهٔ کالاها باید جا شوند، کمکردن بخش اعشاری ممکن است یک بسته کمتر از نیاز بدهد.
Math.ceil عدد را به کوچکترین عدد صحیحِ بزرگتر یا مساوی میبرد؛ Math.floor در جهت پایین و Math.trunc با حذف بخش اعشاری کار میکند. تفاوت floor و trunc برای عدد منفی آشکار میشود. Math.round به نزدیکترین عدد صحیح میرود و در حالت نیمه به سمت مثبت بینهایت تمایل دارد. Math.abs قدرمطلق و Math.min و Math.max انتخاب کران از چند مقدار را انجام میدهند.
در نمونه، برای ۱۷ مداد با ظرفیت ششتایی، سه بسته لازم است. این یک تصمیم کاربردی دربارهٔ ظرفیت است و نباید آن را به سیاست گردکردن قیمت تعمیم داد. ورودیها باید پیش از محاسبه معتبر باشند. Math.random هم برای بازی آموزشی قابل بررسی است، اما تولید رمز یا توکن امنیتی کار آن نیست؛ نمونهٔ فعلی عمداً خروجی تصادفی ندارد.
کجا به کار میآید؟
- محاسبهٔ تعداد بسته یا صفحه با گردکردن رو به بالا
- انتخاب کمینه، بیشینه و فاصلهٔ عددی در گزارش ساده
از تعریف تا یک مثال واقعی
const pencils = 17;
const capacity = 6;
console.log(Math.ceil(pencils / capacity));
console.log(Math.floor(-2.7));
console.log(Math.trunc(-2.7));
console.log(Math.round(2.5));
console.log(Math.abs(-120));
console.log(Math.max(10, 25, 18));
3 -3 -2 3 120 25
این مثال چطور کار میکند؟
تقسیم تعداد بر ظرفیت، مقداری بیشتر از دو میدهد و ceil آن را سه میکند.
floor منفی ۲٫۷ را منفی سه میکند؛ trunc فقط بخش اعشاری را حذف میکند.
خطهای بعدی نمونهٔ round، قدرمطلق و بیشینه را نشان میدهند.
اشتباه رایج
floor و trunc برای همهٔ عددها یکسان نیستند. همچنین گردکردن نمایشی، خطاهای دقت اعشاری یا قرارداد مالی نادرست را خودکار حل نمیکند.
این را به خاطر بسپارید
روش گردکردن را از معنای مسئله انتخاب کنید؛ Math فقط ابزار محاسبه است.