سلام دوستان من یه مشکلی که برخوردم اینه که تابع pow نمیتونه پایه ش عدد منفی یا صفر باشه میخواستم ببینم چیکار باید بکنم که بتونم مثلا -2 به توان 0.333 رو حساب کنم؟
Printable View
سلام دوستان من یه مشکلی که برخوردم اینه که تابع pow نمیتونه پایه ش عدد منفی یا صفر باشه میخواستم ببینم چیکار باید بکنم که بتونم مثلا -2 به توان 0.333 رو حساب کنم؟
این چطوره؟
auto result = std::cbrt(-2);
و هدر <cmath> رو include کن. درواقع ریشه سوم میگیره. Cube Root.
اگر از کامپایلری که از C++11 به بعد را پشتیبانی کنه استفاده کنید! البته که می توانید هم عدد منفی و هم 0 به عنوان پایه در تابع pow قرار بدید!
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
cout<< "pow(-2, 0) = " << std::pow(-2,0) << '\n';
cout<< "pow(-2, -3) = " << std::pow(-2,-3) << '\n';
cout<< "pow(-2, 0.333) = " << std::pow(-2,0.333) << '\n';
return 0;
}
والبته خروجی pow(-2,0.333) این دستور nan هست که خب البته منطقی هم هست!!