возвести в степень?!
как в C++Builder возвести число в степень меньше 1 (например x^(1/3))?
F1 pow,powl
F1 pow,powl
a = pow(5, 1/3);
a = 1;
pow работает с дробными степенями, но не с < 1
x^y = Exp(Y * Ln(X))
a = pow(5, 1/3);
a = 1;
pow работает с дробными степенями, но не с < 1
Ну как вариант можно возвести число в степень 1+с где с<0 и потом отнять это же число:
a = pow(5, 4/3) - 5;
Но сдается мне что библиотека это решает и без этого, и с подобными дробями работает, так что ищи где кривизна.
Потому как у меня:
double x = 4.0, y = 0.5;
double z = pow(x, y);
//z=2
long double w = powl(x,y);
//z=2
Может просто надо писать так:
double x = 5.0, y = 1/3;
double a = pow(x, y);
Ну как вариант можно возвести число в степень 1+с где с<0 и потом отнять это же число:
a = pow(5, 4/3) - 5;
пока ждал ответа сам догадался
сначала тоже думал что отнять надо а потом вспомнил уроки математики :) и понял что надо так:
a = pow(5, 1+degree)/5;
только задание степени не работает как 1+1/3, выдает 1, а если задать как 1.33333 то работает ;)
если степень через переменную temp=1+1/3 то тоже не катит
1\3 ясен пень что 0
а вот (float)1\3 - уже другое
1\3 ясен пень что 0
а вот (float)1\3 - уже другое
А можно так 1.0\3
Или попробуй так 0,3333. У меня второй вариант прокатил.
И, как сказал demonoide, главное - не забывать про приведение типов. Правда, слэш в другую сторону повернуть надо ;) (1.0 / 3)