我有一個應用程序,在該應用程序中我使用某個具有方法的類來返回當前流逝的時間給我。使用無符號long long而不是float來防止打包
unsigned long long getCurrentElapsedTime(){
}
Unsigned long long
代替float
在上述類,因爲在一定時間(約1小時)後運行float
渦卷(變更博覽會形式)。 早些時候,我使用的是從我的程序返回float
秒(1.112,1.336等)的類中的方法。
float getElapsedTime(){
}
我用上面的方法在我的程序如下:
float startTime, deltaTime;
starttime = getElapsedTime();
On Some event
deltaTime = getElapsedtime() - startTime;
if(deltaTime > 1.0f){
//do something
}
我現在這個getCurrentElapsedTime()
方法返回unsigned long long
整數我未包裹,直到很長一段時間。 我必須在我的應用程序中以類似的方式在我的應用程序中使用此方法,但我很困惑我應該如何將unsigned long long
轉換爲float
,以便我不會獲取指數格式數字。 對於我的申請,我是較早使用float
認爲有以下格式數字(1.123,2.345,3.737,等等)
如果我有一個很長的unsigned long long
號,我嘗試轉換浮動,我可能會得到同樣的問題再次(和浮法將在博覽會的形式) 我如何解決這個問題?是否有類似的小數,我可以從unsigned long long
轉換爲沒有進入包裝問題?
指數形式不是使用'float's的問題,它只是'iostream'做出關於用戶希望看到什麼樣的格式的假設。 – 2013-03-08 08:30:15
你爲什麼現在想回到花車?只要把所有的時間保持在長整數。 – 2013-03-08 08:31:01
1 - 目前還不清楚你的'轉換'應該是什麼樣子。一個'unsigned long long'是一個整數,你爲什麼要把它轉換爲一個浮點數? 2 - 當打印浮動圖案時,您可以擺脫exp符號,但這會導致尾隨零點,從而產生不存在的精度印象。 3 - 無論如何,exp-notation有什麼問題? – us2012 2013-03-08 08:31:22