Qt 中 qRound() 函式的使用時的一個小問題
Qt 中的 qRound() 函式是用來對浮點數四捨五入的。我最近在寫的一個演算法中用到了這個函式,發現了一個小問題。
我的那個程式碼類似這樣:
double f;
int i, j, k;
j = i + qRound(f);
k = j - qRound(-f);
按照我最開始的想法,這裡的 j 和k 應該是相同的。結果測試時發現對某些 f ,這兩個值是不同的。
仔細研究了一下,發現是這樣的,四捨五入時超過0.5是向上舍入的,也就是。
qRound(0.5) = 1
qRound(-0.5) = 0
因此 -qRound(-f) != qRound(f)。
相關推薦
Qt 中 qRound() 函式的使用時的一個小問題
Qt 中的 qRound() 函式是用來對浮點數四捨五入的。我最近在寫的一個演算法中用到了這個函式,發現了一個小問題。 我的那個程式碼類似這樣: double f; int i, j, k; j = i + qRound(f); k = j - qR
python中round函式的一個小坑——奇進偶棄
>>> round(10.5) # 按照round的四捨五入,本來應該是11的。但是這裡是10 10 >>> round(11.5) # 整數部分為奇數的時候,又
scala中計算的的一個小問題,超出Int.maxValue時不會報錯
class sca cal div 問題 pri 如果 int sin 如果小於Int.max時他不會報錯 def sumcount(str:String): Int ={ val ints = for(c <- str)yield { p
[Python隨筆]Python3輸出時使用print函式的一個小技巧
在編寫程式碼的時候,總是煩著print()沒以前版本的好用了,例如: str="Hello World!" >>>print str 如果想輸出字串str,舊版中只要先輸入print,然後空格+變數名即可 在py3以後,則需要: >>>pr
使用純虛擬函式的一個小細節——派生類定義該虛擬函式時宣告語句必須與基類裡完全一致
純虛擬函式在派生類裡明明補寫出來了定義,但是實際發現是無效的,派生類因沒有定義該純虛擬函式同樣被編譯器視為了抽象類。 原因很有可能是:基類和派生類的虛擬函式必須型別、名字、引數數量、名字、型別、以及函式前後綴的各種其他屬性(比如const等)必須完全一致!否則會被認為不是同
Qt中窗體最大最小化以及視窗大小修改的相關函式使用(2)
繼續寫的。 在上一篇文章中說過呼叫view的一些show、showNormal、showMaximized等方法來實現視窗正常顯示。 但後來在實現的過程中發現: 視窗的最大化和全屏是一個效果的,這完全不符合自己當初的意願啊! 尤其是在qml中呼叫view的這些show方法
linux下開發,解決cocos2d-x中編譯出現的一個小問題, undefined reference to symbol 'pthread_create@@GLIBC_2.2.5'
water span x86 code bject data- ace 技術分享 inux 解決cocos2d-x中編譯出現的一個小問題 對於cocos2d-x 2.×中編譯中,若頭文件裏引入了#include "cocos-ext.h",在進行C++編譯的時候會遇到例
php中引用&的一個小實例
應該 數量 保存 cnblogs 理解 循環 簡單的 執行 次循環 在百度知道上碰到一段關於php的引用符&的代碼,對於初學都來說還是很考驗理解分析能力的,把代碼和自己的分析貼上來作一個備份,也與大家共勉。 代碼片段: 1 $arr =array(1,2,3
微信小程序中跳轉另一個小程序
微信 open mini ucc ces java auth ESS min wx.navigateToMiniProgram({ appId: ‘xxxxxxxxxxxxxxxxxx‘, // 要跳轉的小程序的appid path: ‘page/
qt 中畫線時如何設定筆的顏色和填充
在上一次介紹中已經實現了自定義控制元件,並把Widget 放入了主介面中,畫了一個圓,具體可參考“QT 自定義視窗” 下面我們介紹一下如何設定畫筆顏色和所畫圖形的填充顏色。 畫筆顏色: void CircleWidget::paintEvent(QPaintEvent *event) {
安卓setOnItemClickListener中關於Cursor的一個小問題
在之前擬定的業務需求中,涉及到獲取呼叫listview中點選項資料的問題。先前的解決方法為:從頭開始遍歷獲取,如果存在很多資料,會將每一條都處理一遍。 while(!cursor.isAfterLast()){ Cursor cursor = select(); cursor.mo
Qt中sender()函式的用法
你在一個槽裡面,呼叫這個函式,返回的就是你訊號來源的物件; QPushButton *aaaa = new QPushButton(this); 比如 connect(aaaaa, SIGNAL(Click()), this, SLOT(Onaaaaa()); void Ona
關於刪除陣列中相同元素的一個小技巧
如果說到刪除陣列中的相同元素,比如這裡定義一個數組var arr=[1,1,2,2,3,3,3],我想要刪除陣列中的2,那麼應該怎麼做呢。大家都會想到使用for迴圈就可以了,of course . var arr=[1,1,1,2,2,2,3,3,3,3]; for (var i
(轉載)Qt中blockSignals函式的用法
首先遇到的問題: 今天在使用Qt對QComboBox控制元件新增內容時,不管是用下列兩個函式中的哪個都會出問題。 void QComboBox::addItem(const QString &text, const QVariant &userData =
在嵌入式平臺上QT 在啟動後出現一個小綠方框,裡面有個滑鼠指標去掉的方法
不說廢話直接進入正題。 第一步:也是最費時的一步 首先進入要編譯的qt原始檔,我的路徑在work/imx6/qt-everywhere-opensource-src-4.8.5/src下面,讓我搜索qwscursor.cpp &nbs
python3.x中宣告函式時的預設值引數問題
宣告一個引數具有預設值的函式形式如下: def <函式名> (引數=預設值): <函式語句> eg: def hello(name='python'): print('你好,我是: %s' %name) h
Qt使用connect函式時向slot傳遞引數:使用lambda表示式
QMetaObject::Connection QObject::connect(const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor f
輪播圖中計算數字的一個小技巧
最近公司專案中用到了輪播圖,由於公司職責分離,靜態頁面已經寫好了,我只需要負責使用vue新增互動效果即可。我得到的DOM結構如下: <ul> <li class="banner-prev"> <div cl
在vs中使用hash_map的一個小總結
一直以來都不是太習慣使用hash_map 在專案中首次使用,本來以為可以像使用vector的遍歷操作來呼叫的,但是…… hash_map的原理是使用一個hash函式,來儲存key和value 原來在vs中的hash_map已經被unordered_map取代了 這是一
Qt中虛擬函式不能例項化解決
voiddrawComplexControl(ComplexControlcontrol, constQStyleOptionComplex*option, QPainter*painter,constQWidget*widget=0)const=0; error: