C语言中、Qt中,都没有以任意为底数的对数函数,所以log5 ^3 [以5为底]是没有的。但是可以用logx(y)=ln(y)/ln(x)来代替,修改代码如下
1、Qt中对数,通过自然对数qLn()转换一下,logx(y)=ln(y)/ln(x)
#include <QtWidgets/QApplication>
#include <QDebug>
#include <QtCore/qmath.h>
int main(int argc, char *argv[])
{
double a,b;
a=2*3.14-1;
b=qLn(3)/qLn(5);
}
2、Qt中求指数,通过qPow(qreal x, qreal y),相当于x的y次方。y是指数
#include <QtWidgets/QApplication>
#include <QDebug>
#include <QtCore/qmath.h>
int main(int argc, char *argv[])
{
double b;
b=qPow(2,1); //b = 2
}
3、Qt中求以常数e为底数的指数。正好是qLn()的逆反。用qExp(qreal y)
#include <QtWidgets/QApplication>
#include <QDebug>
#include <QtCore/qmath.h>
int main(int argc, char *argv[])
{
double b;
double a = qLn(4000000); //a=15.201804919084164
b=qExp(a); //b = 3999999.9999999986 有精度损失
}
此外还有常用的:
qreal qCos(qreal v) qreal qAcos(qreal v) //余弦、反余弦
qreal qSin(qreal v) qreal qAsin(qreal v) //正弦、反正弦
qreal qTan(qreal v) qqreal qAtan(qreal v) //tan函数,arctan函数
real qAtan2(qreal y, qreal x) //求一个坐标点的反正切函数
int qCeil(qreal v) //返回大于或者等于指定表达式的最小整数
qreal qFabs(qreal v) //求浮点数x的绝对值
int qFloor(qreal v) //其功能是“向下取整”,或者说“向下舍入”,即取不大于x的最大整数(与“四舍五入”不同,下取整是直接去掉小数部分)
qreal qLn(qreal v) qqreal qExp(qreal v)//自然对数以及相反值
qreal qPow(qreal x, qreal y) //计算x的y次幂
qreal Sqrt(qreal v) //平方根计算