目前正试图将无符号long long除以静态值.
unsigned long long包含操作完成所用的微秒数.我想取这个值并将其转换为秒.
这是代码snippit:
double udDiffTime = ullHighResDiffTime / (unsigned long long)1000000;
在我的调试器的一个案例中,我可以看到ullHighResDiffTime = 639.因此,udDiffTime = 0.000639.但是,我得到了udDiffTime = 0.
我确定我在某个地方犯了一个错误.我尝试过使用1000000LL而不是使用(unsigned long long)进行投射,但没有区别.
你正在进行整数除法,因此如果结果为0.000639,它将被截断为0.
如果需要浮点结果,则必须至少使用一个浮点操作数.试着(unsigned long long) 1000000改为1000000.0.
无符号长多头可以达到18,446,744,073,709,551,615.A double最高可达1.7E308(即一个308零).问题在于,值越高,精度越低,因此您需要问自己的是,如果大值确实需要那么精确,或者更重要的是数量的大小.