博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
QT 中一些数学计算函数
阅读量:5366 次
发布时间:2019-06-15

本文共 2071 字,大约阅读时间需要 6 分钟。

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

转载于:https://www.cnblogs.com/xj626852095/p/3648217.html

你可能感兴趣的文章
《Linux内核设计与实现》第四章学习笔记
查看>>
Docker 安装MySQL5.7(三)
查看>>
CSS: caption-side 属性
查看>>
CSS3中box-sizing的理解
查看>>
mysql导入source注意点
查看>>
linux下编译安装nginx
查看>>
DLL 导出函数
查看>>
windows超过最大连接数解决命令
查看>>
12个大调都是什么
查看>>
angular、jquery、vue 的区别与联系
查看>>
Intellij idea创建javaWeb以及Servlet简单实现
查看>>
代理网站
查看>>
Open multiple excel files in WebBrowser, only the last one gets activated
查看>>
FFmpeg进行视频帧提取&音频重采样-Process.waitFor()引发的阻塞超时
查看>>
最近邻与K近邻算法思想
查看>>
【VS开发】ATL辅助COM组件开发
查看>>
FlatBuffers In Android
查看>>
《演说之禅》I & II 读书笔记
查看>>
thinkphp3.2接入支付宝支付接口(PC端)
查看>>
【转】在Eclipse中安装和使用TFS插件
查看>>