وقتی با پی اچ پی روی چندتا عدد با تعداد رقمهای بالا عملیات ریاضی انجام می دم، پی اچ پی از e برای نشون دادن تعادا رقمهای اون عدد استفاده می کنه.
توی پی اچ پی چطور می تونم روی اعدادی با 20 تا 40 رقم عملیات ریاضی انجام بدم؟
وقتی با پی اچ پی روی چندتا عدد با تعداد رقمهای بالا عملیات ریاضی انجام می دم، پی اچ پی از e برای نشون دادن تعادا رقمهای اون عدد استفاده می کنه.
توی پی اچ پی چطور می تونم روی اعدادی با 20 تا 40 رقم عملیات ریاضی انجام بدم؟
من از توابعی که معرفی کردید استفاده کردم و دو عدد 20 رقمی رو با هم جمع کردم اما نتیجه به شکل زیر نمایش داده شد:
1.90136867392E+150.0000
هنوز مشکلم حل نشده.
خوب عزیزم جمع همون عدد رو درست داده که . این به خاطر این هستش که جمع اون دو تا عدد خیلی بزرگه . شما پس چه جور عددی میخوایین ازش دریافت کنید دقیقا منظورتون رو بگین که به جه صورت میخوایین عدد رو
من نمی خوام به این صورت باشه.خوب عزیزم جمع همون عدد رو درست داده که . این به خاطر این هستش که جمع اون دو تا عدد خیلی بزرگه . شما پس چه جور عددی میخوایین ازش دریافت کنید دقیقا منظورتون رو بگین که به جه صورت میخوایین عدد رو
فرض کنید یه عدد 20 رقمی رو با یه عدد 22 رقمی جمع می کنیم، من می خوام عدد حاصل به درستی (بدون گرد شدن و ...) نمایش داده بشه.
قدیما در زبان سی چنین چیزی رو پیاده کرده بودم.
رقم ها در یک آرایه ذخیره میشد و درست به همون شکلی که به خودمون در مدرسه یاد دادن اعمال اصلی رو انجام بدیم برنامه هم عمل میکرد.
البته برای اعداد بزرگ کتابخانه های مخصوص هم وجود داره. ولی اطلاع ندارم برای PHP چه کتابخانه/اکستنشنی هست.
اتفاقا منم دنبال همین کتابخانه می گردم. اگر کسی از دوستان در مورد چنین کتابخانه ای اطلاع داره، لطفا توضیحاتی در موردش ارائه بده.البته برای اعداد بزرگ کتابخانه های مخصوص هم وجود داره. ولی اطلاع ندارم برای PHP چه کتابخانه/اکستنشنی هست.
<?php
$int = 10000000000000000000;
echo number_format($int,0,',','');
?>
من اصلا کاری به اعداد اعشاری ندارم و نیازی به استفاده از توابع رند کردن ندارم.<?php $int = 10000000000000000000; echo number_format($int,0,',','');?>
من می خوام با اعداد صحیح بالای 20 رقم کار کنم.
دوست من منم کاری با اعشار ندارم . انگار شما کدو تست هم نکردید و دارید قضاوت می کنید. BCMath توابعی برای اعمال عملیات ریاضی روی اعداد بزرگ داره که با اون شما میتونید هر عددیو با هر عددی جمع کنید تفریق کنید و ... حالا مشکل دوم شما نمایش عدد هستش که به صورت E نمایش داده میشه که فقط کافی از تابع number_format به صورت مثال استفاده کنید
عملگر e باعث می شه که اعداد حذف بشن و بجاش از توان 10 استفاده می شه. یعنی عدد اصلی از بین می ره.در نتیجه تابع number_format نمی تونه عدد واقعی رو بدست بیاره.دوست من منم کاری با اعشار ندارم . انگار شما کدو تست هم نکردید و دارید قضاوت می کنید. BCMath توابعی برای اعمال عملیات ریاضی روی اعداد بزرگ داره که با اون شما میتونید هر عددیو با هر عددی جمع کنید تفریق کنید و ... حالا مشکل دوم شما نمایش عدد هستش که به صورت E نمایش داده میشه که فقط کافی از تابع number_format به صورت مثال استفاده کنید