为什么按浮点数除以NSNumber会将结果四舍五入到小数点后一位?

时间:2012-09-13 12:19:55

标签: objective-c ios floating-point decimal-point

请参阅以下代码:

NSNumber *fileSystemSizeInBytes = [dictionary objectForKey: NSFileSystemFreeSize];
float totalSpaceInMB = (([fileSystemSizeInBytes longLongValue] /1024.0)/1024.0);

此处totalSpaceInMB总是四舍五入到小数点后1位。

例如,如果fileSystemSizeInBytes = 13261987840,则totalSpaceInMB = 12647.6

我想要4位小数,totalSpaceInMB = 12647.6172。为什么会这样?

2 个答案:

答案 0 :(得分:0)

更好的尝试:

NSNumber *fileSystemSizeInBytes = [dictionary objectForKey: NSFileSystemFreeSize];
double totalSpaceInMB = (([fileSystemSizeInBytes longLongValue] /1024.0)/1024.0);
NSLog(@"%.4lf",totalSpaceInMB);

答案 1 :(得分:0)

NSNumber *fileSystemSizeInBytes = [dictionary objectForKey: NSFileSystemFreeSize];

double totalSpaceInMB = (([fileSystemSizeInBytes longLongValue] /1024.0)/1024.0);

NSLog(@"%.4f",totalSpaceInMB);

希望这会有所帮助:)