我正在尝试将unsigned long long
转换为double
,因为我需要逗号。
NSFileManager* fMgr = [[NSFileManager alloc] init];
NSError* pError = nil;
NSDictionary* pDict = [ fMgr attributesOfFileSystemForPath:NSHomeDirectory() error:&pError ];
//get DiskSpace
NSNumber* pNumAvail = (NSNumber*)[ pDict objectForKey:NSFileSystemSize ];
[fMgr release];
//byte to Mega byte
unsigned long long temp = [pNumAvail unsignedLongLongValue]/1000000;
//Mega byte to kilo byte
double tempD = (double)(temp/1000.0);
NSLog([NSString stringWithFormat:@"%qu", temp]); //result 63529
NSLog([NSString stringWithFormat:@"%i", tempD]); //result 1168231105
///////////////////////////////////////////////////but i want 63.529
我做错了什么?
答案 0 :(得分:3)
您的格式说明符不匹配。您需要使用浮点格式来打印double
。尝试使用%f
代替%i
。不匹配会导致不确定的行为。
答案 1 :(得分:2)
我认为你的格式错了。您应该使用%f
:NSLog([NSString stringWithFormat:@"%f", tempD]);