QT 中一些数学计算函数
2013-08-19 09:37
1281 查看
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
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
相关文章推荐
- QT 中一些数学计算函数
- Qt中计算坐标的一些简单函数接口
- DirectX 9的一些数学计算函数:平面
- DirectX 9的一些数学计算函数:平面
- Qt中计算坐标的一些简单函数接口
- Ccocos2d-x中的一些常用数学函数
- 软件中的数学计算引起的一些简单思考
- D3D开发中你必须知道的一些函数和数学知识
- Qt信号槽中槽函数为虚函数的一些感想
- hihocoder #1068 : RMQ-ST算法 ( RMQ算法 O(nlogn)处理 O(1)查询 *【模板】 1)初始化d数组直接读入+计算k值用数学函数log2()==*节约时间 )
- QT 如何实现使用 QPainter 的 drawPixmap() 函数将图片文件绘制到一个 QLabel、QPushButton 或者其他的一些设备上?
- Oracle一些日期计算的函数
- cocos2d-x 中的一些数学函数
- SQL 计算数学函数
- 高等数学:第二章 导数与微分(3)函数微分 近似计算
- php的一些小笔记--数学函数
- 函数返回PHP 常用数学计算内部函数 (Mathematical Functions)
- Shell实现的一些数学运算自定义函数分享
- opencv矩阵计算的一些函数
- C++简单程序 计算存款本息 以及几个常见数学函数