我有一个应用程序,在该应用程序中我使用某个具有方法的类来返回当前流逝的时间给我。使用无符号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