如何将NSNumber舍入为零小数空格

The*_*ner 6 objective-c

如何将NSNumber舍入到零小数空格,在下面的行中它似乎保留小数空格:

NSNumber holidayNightCount = [NSNumber numberWithDouble:sHolidayDuration.value];
Run Code Online (Sandbox Code Playgroud)

小智 14

通常转换为int truncates.例如,3.4变为3(根据需要),但3.9也变为3.如果发生这种情况,请在投射前添加0.5

int myInt = (int)(sHolidayDuration.value + 0.5);
Run Code Online (Sandbox Code Playgroud)


pir*_*800 12

这是一个冗长的方法

float test = 1.9;
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setRoundingMode:NSNumberFormatterRoundHalfUp];
[formatter setMaximumFractionDigits:0];
NSLog(@"%@",[formatter  stringFromNumber:[NSNumber numberWithFloat:test]]);
[formatter release];
Run Code Online (Sandbox Code Playgroud)


小智 3

如果你只需要一个整数为什么不直接使用 int

int holidayNightCount = (int)sHolidayDuration.value;
Run Code Online (Sandbox Code Playgroud)

根据定义,int 没有小数位

如果您需要使用 NSNumber,您可以将 Double 转换为 Int,然后使用 int 创建您的 NSNumber。

int myInt = (int)sHolidayDuration.value;
NSNumber holidayNightCount = [NSNumber numberWithInt:myInt];
Run Code Online (Sandbox Code Playgroud)