首页 技术 正文
技术 2022年11月15日
0 收藏 819 点赞 3,802 浏览 1744 个字

QT的一些範例中有出現 qmax, qmin 等 math函式的身影,但我在官方文件中卻找不到與 math函式相關的說明,所以我就把函式的source裡面提供的方法整理條列,並且看看還有哪些 math相關的函式可用。在 qglobal.h 裡,可以找到幾種 math函式,條列於下,但一般常用的 math如:qfloor(無條件捨去)、qceil(無條件進位)、qsin,qcos,qtan(三角函數) 等等等…則是都沒有看到。

qAbs ( const &value )

說明:返回絕對值

範例:

int absoluteValue;

 int myValue = -4;

 absoluteValue = qAbs(myValue);

// absoluteValue == 4qBound ( const &min, const &value, const &max )

說明:返回極限不超過 min , max 的值, 等同於 qMax(min, qMin(value, max))

範例:

int myValue = 10;

 int minValue = 2;

 int maxValue = 6;

int boundedValue = qBound(minValue, myValue, maxValue);

 // boundedValue == 6

qMax ( const &value1, const &value2 )

說明:返回最大值

範例:

int myValue = 6;

 int yourValue = 4;

int maxValue = qMax(myValue, yourValue);

// maxValue == 6qMin ( const & value1, const &value2 )

說明:返回最小值

範例:

int myValue = 6;

 int yourValue = 4;

int minValue = qMin(myValue, yourValue);

// minValue == 4int qRound ( qreal value )

說明:返回四捨五入的整數

範例:

qreal valueA = 2.3;

 qreal valueB = 2.7;

int roundedValueA = qRound(valueA);

 // roundedValueB = 2

 int roundedValueB = qRound(valueB);

 // roundedValueB = 3

qint64 qRound64 ( qreal value )

說明:返最接近的64位元整數

範例:

qreal valueA = 42949672960.3;

 qreal valueB = 42949672960.7;

int roundedValueA = qRound(valueA);

 // roundedValueA = 42949672960

 int roundedValueB = qRound(valueB); 

 // roundedValueB = 42949672961

int qrand ()

說明:thread-safe版本的標準C++亂數函式,返回 0 到 RAND_MAX之間的數字序列之下一個整數,使用qsrand(uint seed) 重新給定種子

範例:

qreal valueA = qrand() % 100; // 41

 qreal valueB = qrand() % 10; // 7

 qreal valueC = qrand() % 2; // 0

 qsrand(0xffffffff);

 valueA = qrand() % 100; // 35

 valueB = qrand() % 10; // 9

 valueC = qrand() % 2; // 0

 qsrand(0xffffff);

 valueA = qrand() % 100; // 35

 valueB = qrand() % 10; // 3

 valueC = qrand() % 2; // 0

bool qFuzzyCompare ( double p1, double p2 ) [靜態方法]

說明:比較兩個長浮點數的大小,如果兩者相同返回true,反之為否,同樣為thread-safe。另外也提供float版本的方法: bool qFuzzyCompare ( float p1, float p2 ) [static]

範例:

qreal valueA = 42949672960.3;

 qreal valueB = 42949672960.7;

bool equal = qFuzzyCompare(valueFA,valueFB);

 // equal = false

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,083
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,558
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,407
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,180
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,816
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,899