توابع ریاضی در php (کار با اعداد)

  • آپدیت شده در تاریخ

توابع ریاضی در php (کار با اعداد)

در آموزش توابع ریاضی در php قصد داریم چندتا از مهمترین توابعی مربوط به عملیات هایی که بر روی اعداد می توان انجام داد را بررسی کنیم. در مقالات آموزش قبل یک سری از توابع مهم مربوط به کار با رشته ها (string) را دیدیم .

سینتکس توابع ریاضی در php که بیشتر مربوط به اعداد است بر خلاف توابع کار با رشته ها در php ، بسیار سینتکس ساده ای دارند.

با استفاده از توابعی که معرفی می شود به راحتی می توانید عملیات های ریاضی در PHP را انجام بدید

تابع abs()

تابع abs() یک مقدار صحیح و مثبت را از عددی که به آن پاس می دهیم ، به ما برگشت (return) می دهد.

سینتکس

مثال

تابع ceil()

کلمه ceil به معنای سقف است . پس تابع ceil مقدار عددی که قسمت اعشار داشته باشد را افزایش می دهد تا یک عدد رند بدست بیاد.

سینتکس

تابع floor()

کلمه floor به معنی کف هستش . پس تابع floor() مقدار اعشاری عدد داده شده را حذف و به کمترین مقدار عددی صحیح تبدیل می کند

سینتکس

تابع round()

تابع round هم قسمت اعشاری عدد را افزایش می دهد تا یک عدد رند حاصل شود .

سینتکس

مثال

همانطور که از مثال تابع ceil دیدید مقدار اعشاری عدد را افزایش میدهد که به طور مثال عدد ۷٫۸ را به ۸ تبدیل میکند در حالی که تابع floor برعکس آن مقدار ۷٫۸ را به ۷ می رساند .تابع round() هم بر اساس مقداری که به آن داده شده عمل می کند به اینصورت که اگر مقدار اعشاری بزرگتر یا مساوی .۵ (>=.5) باشد آن را به طرف بالا یعنی افزایش رند میکند در غیر اینصورت به کمترین مقدار صحیح (همانند تابع floor) تبدیل می کند.

تابع pow()

Pow مخفف power است که در زبان انگلیسی به معنی قدرت و در ریاضی به معنای به توان رساندن یک عدد است  تابع pow مقدار توان اعداد را محاسبه می کند . به اینصورت که به عنوان ورودی اول عدد مورد نظر و ورودی دوم مقدار توان را  می پذیرد.

سینتکس

مثال

تابع sqrt()

تابع sqrt ریشه توان دوم اعداد را محاسبه می کند.

سینتکس

مثال

تابع exp()

تابع exp مقداری که یک عدد توان را افزایش می دهد را نشان می دهد

سینتکس

مثال

تابع decbin()

تابع decbin مقدار عددی دسیمال (decimal) به عدد باینری (binary) تبدیل می کند.

سینتکس

تابع dechex()

تابع dechex مقداد عددی دسیمال را به هگزادسیمال (hexadecimal) تبدیل می کند.

سینتکس

تابع decoct()

تابع decoct مقدار عددی دسیمال را به اوکتال (octal) تبدیل می کند

سینتکس

مثال

تابع bindec()

تابع bindec مقدار عددی باینری را به دسیمال تبدیل می کند

سینتکس

تابع octdec()

تابع octdec مقدار عددی اوکتال را به دسیمال تبدیل می کند

سینتکس

تابع hexdec()

تابع hexdec مقدار عددی هگزادسیمال را به مقدار دسیمال تبدیل می کند.

سینتکس

مثال

تابع fmod()

تابع fmod باقیمانده حاصل شده از تقسیم عدد ورودی اول بر ورودی دوم را برگشت می دهد

سینتکس

مثال

تابع max()

تابع max بیشترین مقدار عددی بین اعدادی که در یک آرایه تعریف شده است را return میکند

سینتکس

مثال

تابع min برعکس تابع max() عمل میکند به این معنا که یک آرایه از مقادیر عددی را دریافت و کمترین مقدار عددی را برگشت می دهد .

تابع number_format

تابع number_format مقدار عددی را به اعشار هزار تبدیل می کند که در نمایش قیمت محصولات در فروشگاه ها بسیار مفید و پر کاربرد است .

توابع سینوس ، کسینوس و تانژانت در php

توابع sin() , cos() , tan() مقدار مقدار سینوس ، کسینوس و تانژانت را محاسبه می کند . همه این توابع یک ورودی را دریافت می کنند.

سینتکس

مثال

کار با اعداد در php و استفاده از توابع ریاضی در php بسیار کاربردی می باشد . ازهمه توابع بالا معمولا استفاده نمی کنیم ولی توابع خیلی مهمی که در هنگام کار با اعداد در php ممکن است به آن نیاز داشته باشید به صورت زیر لیست شده اند

  • تابع ceil
  • تابع floor
  • تابع number_format
  • توابع max و min

امیدوارم از آموزش توابع ریاضی در php (کار با اعداد) لذت برده باشید و بتوانید عملیات ریاضی در php را با سادگی هرچه تمام تر انجام بدید و مطمین باشید در پروژه های فروشگاهی به این توابع نیاز خواهید داشت .

هر سوالی داشتید ، از قسمت نظرات اقدام کنید . سریعا ، پاسخگوی سوالات شما هستیم .

موفق و پیروز باشید.

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۲۵)

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. ایمان ۳ آبان ۱۴۰۰

    سلام
    یک مشکل بزرگ از نظر خودم و کوچک از نظر شما دارم.
    این عدد : ۲۵۵۲۴٫۰۰۰۵۴۵۴۰۰ رو تبدیل به این کنم : ۲۵,۵۲۴٫۰۰۰۵۴۵۴ هم سه رقم مثل number_format بشه ولی اگه از number_format استفاده کنم اعشار حذف میشه و اگه تعداد معینی از اعشار بگم هم ممکنه بقیه ی اعشار رو ببره یعنی اعشار گاهی دو رقم و گاهی ده رقم هست و خود اعشار ممکنه آخرشون مثل عدد بالا دو صفر آخر داشته باشه که میخوام اون رو هم حذف کنم یعنی صفرهای آخر اعشار حذف بشه.
    ممنون میشم در این مورد کمک کنید.
    با تشکر.

    پاسخ
  2. منصوری ۲۸ فروردین ۱۴۰۰

    سلام یه سوال داشتم من یه برنامه نوشتم ودر دیتا بیس فقط عدد هست و وقتی با اکسل خروجی میگیرم این اعداد که اولشون صفر هست چاپ نمیشه میشه بگید چیکار کنمش

    پاسخ
    1. حسن شفیعی ۲۸ فروردین ۱۴۰۰

      سلام. از کدهای این آموزش استفاده کنید :
      https://netparadis.com/export-data-to-excel-in-php

      پاسخ
  3. مزرجی ۲۷ اسفند ۱۳۹۹

    سلام اقای شفیعی وقتتون بخیر
    وقتی یه مقداری رو از دیتا فراخوانی میکنم اینطور نمایش میده:
    ۶٫۰E-5
    چطور کاری کنم مثلا نهایت اگه عدد خیلی هم اعشار داره اینجور نمایش داده بشه و همه رو نشون نده:
    ۱٫۰۰۰۰۰۰۰۹۰۸

    پاسخ
    1. حسن شفیعی ۲۸ اسفند ۱۳۹۹

      سلام. ممنون.
      متاسفانه در این مورد اطلاعاتی ندارم مجبورید انگلیسی گوگل کنید

      پاسخ
      1. مزرجی ۲۸ اسفند ۱۳۹۹

        سلام مجدد وقتتون بخیر
        از تابع round() استفاده کردم و مشکلم حل شد
        ممنون از سایت خوبتون

        پاسخ
      2. حسن شفیعی ۲۸ اسفند ۱۳۹۹

        سلام. ممنون.
        خوشحالیم که مفید واقع شده.
        موفق باشید.

        پاسخ
  4. ستار ۱۶ دی ۱۳۹۹

    سلام خسته نباشید من از number_format استفاده کردم در محاسبه قیمت ولی وقتی عدد بالای ۱ میلون میشه ۱۰۰۰ نشون میده ولی عدد کوچیکتر از ۱ میلون رو درست نشون میشده
    اینم کدمه
    $newSubTotal = number_format((float)Cart::subtotal(),2)*1000 – $discount;

    پاسخ
    1. حسن شفیعی ۱۶ دی ۱۳۹۹

      سلام ممنون.
      *۱۰۰۰ را باید داخل پارانتر انجام بدید نه خارج از number_format
      پس *۱۰۰۰ رو ببرید داخل پارانتز حل میشه :
      Cart::subtotal()*1000

      پاسخ
      1. ستار ۱۶ دی ۱۳۹۹

        اینکارو انجام دادم ولی این ارور رو میده وقتی داخل پرانتز مینویسم
        A non well formed numeric value encountered

        پاسخ
  5. محمد یزدانی ۱۶ آذر ۱۳۹۹

    مثل همیشه عالی

    پاسخ
    1. حسن شفیعی ۱۶ آذر ۱۳۹۹

      سلام. خوشحالیم که مفید واقع شده.
      موفق باشید.

      پاسخ
  6. امیرحسین آقاجانی ۳۱ اردیبهشت ۱۳۹۹

    با تشکر از آموزش خیلی مفیدتون!
    من یه عدد int دارم که مثلا شده ۲۵,۸۵۰,۱۵۸
    چطوری میشه این عدد رو به ۲۶,۰۰۰,۰۰۰ تبدیل کرد؟

    پاسخ
    1. حسن شفیعی ۳۱ اردیبهشت ۱۳۹۹

      سلام. خوشحالیم که مفید واقع شده.
      به طور معمول نمی توانید و باید با ترکیب چند تابع round و number_format و جایگزین کردن , با . و همچنین قرار دادن دستی صفر با تابع عدد رو بسازید
      ولی برای این مثال شما میتونید از این استفاده کنید :
      echo ceil(25850158 / 1000000) * 1000000

      پاسخ
      1. امیرحسین آقاجانی ۳۱ اردیبهشت ۱۳۹۹

        ممنون از راهنماییتون

        پاسخ
      2. حسن شفیعی ۳۱ اردیبهشت ۱۳۹۹

        کامنت ویرایش شد و روشی دیگر اضافه شد

        پاسخ
  7. علی گنجی ۲ اردیبهشت ۱۳۹۸

    عالی . بسیار عالی
    ببخشید من خیلی سوال می کنم. یه سوال داشتم که بخوام در php تمامی زیرمجموعه ها عدد برای حساب شود باید چه کار کنم.مثلا برای عدد ۳ برای ما اینو چاپ کنه:
    {} و {۳}
    و برای عدد ۱۲ اینو چاپ کنه
    {}{۲}{۱}{۱,۲}
    ممنون میشم اگه پاسخ بدین

    پاسخ
    1. حسن شفیعی ۲ اردیبهشت ۱۳۹۸

      سلام. خوشحالیم که مفید واقع شده.
      ابتدا عدد را به تابع explode پاس می دید تا آن را به چند بخش هر کدام در یک خانه آرایه قرار و خود آرایه را بری شما برگشت بده
      بعد خروجی تابع بالا را می تونید در یک حلقه foreach قرار داده و قبل و بعد آن { و } را اضافه کنید. در نهایت مقداری که توسط foreach ایجاد شده همان خروجی مشابه شما خواهد بود.

      موفق باشید.

      پاسخ
  8. امیرحسین آقاجانی ۲۱ فروردین ۱۳۹۷

    با تشکر از اموزش و سایت بسیار مفیدتون!
    یه سوال، اگه من بخوام عدد ۳۰۰۰۰۰۰ رو به ۳٫۰۰۰٫۰۰۰ تبدیل کنم باید چیکار کنم ؟
    ( میخوام به تابعم یه عدد بدم و بیاد صدگان و … رو محاسبه کنه و بینشون ” ، ” ویرگوا بذاره! )

    با تشکر

    پاسخ
    1. حسن شفیعی ۲۱ فروردین ۱۳۹۷

      سلام . خواهش می کنم خوشحالم که مفید بوده .
      برای این کار از تابع number_format به صورت زیر استفاده کنید.


      number_format("3000000");

      موفق باشید.

      پاسخ
      1. امیرحسین آقاجانی ۲۱ فروردین ۱۳۹۷

        مشکلم حل شد! ممنون

        پاسخ
      2. حسن شفیعی ۲۱ فروردین ۱۳۹۷

        خیلی هم عالی . موفق باشید.

        پاسخ
      3. امیرحسین آقاجانی ۲۱ فروردین ۱۳۹۷

        ایا اموزش ساختن این دکمه لایک و دیلایک به صورت AJAX رو که برای پست های خودتون هست رو هم دادین؟

        پاسخ
      4. حسن شفیعی ۲۱ فروردین ۱۳۹۷

        بله از

        آموزش ساخت سیستم لایک با php و ajax

        استفاده کنید
        همچنین هر آموزشی که نیاز بود کافیست از قسمت سرچ بالا در سایت جستجو کنید.
        موفق باشید

        پاسخ
      5. امیرحسین آقاجانی ۲۱ فروردین ۱۳۹۷

        خییلیی خییلیی سپاس گذارم

        پاسخ
دوره های آموزشی