2011-08-09 22 views
0

unsigned long longdoubleに変換しようとしていますが、コンマが必要です。符号なしlong long double long

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を印刷するには、浮動小数点形式を使用する必要があります。 %iの代わりに%fを使用してください。不一致は未定義の動作を引き起こします。

+0

-.-大変ありがとう、初心者の間違い... – Seega

2

あなたのフォーマットが間違っていると思います。 %fを使用する必要があります。NSLog([NSString stringWithFormat:@"%f", tempD]);

+0

また、メガバイトは1024 * 1024バイトです! –

関連する問題