GetDiskFreeSpaceEx函数的问题。
请问如何将GetDiskFreeSpaceEx函数中返回的64位无整型数转化为小数输出。 例如我现在C盘的总容量为9.75G,但是调用该函数是以字节为单位返回的,这是一个很大的数,我将这个数除以1073741824(1024的3次方)得到的是9,可是我想得到的是9.75,我在MSDN中找到了一个__atoi64的函数,好像也不行。请问有没有64位的float型,如果有它和64位无整型函数应如何转换。以下是我的代码,最后得到的是一个整数。
//定义变量
ULARGE_INTEGER nTotalBytes;
ULARGE_INTEGER nFreeBytes;
ULARGE_INTEGER nFreeByteOfTotal;
//调用函数以获得硬盘C分区的信息,为方便我没的使用判断函数调用是否成功。
::GetDiskFreeSpaceEx(_T("C:"),&nFreeBytes,&nTotalBytes,&nFreeByteOfTotal);
//定义变量用于接收C分区总大小,以字节为单位
__int64 i64TotalBytes = nTotalBytes.QuadPart;
//将字节转换为GB
i64TotalBytes = i64TotalBytes / 1073741824;
//转成字符串形式以便显示输出
char chT[10];
sprintf(chT,"你的C盘大小为:%I64u GB",i64TotalBytes);
//显示结果
MessageBox(chT);