نوشته شده توسط
billgivz
دوست عزیز من گفتی کسی کدی داره بهم بده من بشتر فرمول واسم مهمه .
سلام
لطفا برای اینکه سریعتر به جواب خود برسید کد خودتان را هر چند ساده و کوتاه قرار دهید. هر چقدر شما توضیحات بیشتری بدهید جواب های مناسب تری دریافت می کنید. در هر صورت به نظر میاد مشکل شما در محاسبه با اعداد بزرگ است.
بزرگترین عدد صحیح در php در این ثابت PHP_INT_MAX قرار داد. و با ثابت PHP_INT_SIZE نیز می توانید متوجه بشید که نوع داده Integer چند بایتی است. (بستگی به ۶۴ یا ۳۲ بیت بودن دارد) برای نسخه ۶۴ بیت حداکثر مقدار آن 9E18 می باشد که حدودا ۱۹ رقم است. وقتی عددی بزرگتر از این مقدار شود php ان را به نوع float تغییر می دهد که موجب از بین رفتن ارقام کم ارزش می شود در نتیجه مقدار باقیمانده بدست آمده از تقسیم اشتباه خواهد بود.
برای اعداد بزرگ کافیست از توابع bc استفاده کنید. (دقت کنید که اعداد ورودی و خروجی توابع bc از نوع string هستند)
http://php.net/manual/en/book.bc.php
echo bcmod('2960000000100324200001182706','97');
// ۱