如何圓一個NSNumber零小數位,在下面的行似乎保持小數位:如何圓一個NSNumber的零小數位
NSNumber holidayNightCount = [NSNumber numberWithDouble:sHolidayDuration.value];
如何圓一個NSNumber零小數位,在下面的行似乎保持小數位:如何圓一個NSNumber的零小數位
NSNumber holidayNightCount = [NSNumber numberWithDouble:sHolidayDuration.value];
如果你只需要一個整數爲什麼不只是使用int
int holidayNightCount = (int)sHolidayDuration.value;
通過定義一個int沒有小數
如果你需要使用的NSNumber,你可以只投了一倍,達到INT,然後使用INT來創建你的NSNumber 。
int myInt = (int)sHolidayDuration.value;
NSNumber holidayNightCount = [NSNumber numberWithInt:myInt];
樓更可能是所需的行爲 – 2010-08-02 18:49:34
@JoshuaWeinberg從技術上講,這應該截斷,這是一樣的地板。 – csga5000 2015-11-08 02:07:22
底板和截斷對於底片是不同的。 – 2015-11-12 21:03:19
前添加0.5這是一個有點長篇大論辦法
float test = 1.9;
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setRoundingMode:NSNumberFormatterRoundHalfUp];
[formatter setMaximumFractionDigits:0];
NSLog(@"%@",[formatter stringFromNumber:[NSNumber numberWithFloat:test]]);
[formatter release];
這不會真正適用於負數,但這更符合我的需求。在我的情況下,我想要一個或兩個小數位,在這方面這種方法更強大。 – csga5000 2015-11-08 02:06:22
你也可以做到以下幾點:INT roundedRating =(int)的輪(rating.floatValue);
樓使用舊的C函數地板(),然後你可以創建一個NSInteger哪個更合適的號碼,請參閱: https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man3/floor.3.html ....
NSInteger holidayNightCount = [NSNumber numberWithInteger:floor(sHolidayDuration.value)].integerValue;
在這裏的主題的更多信息:http://eureka.ykyuen.info/2010/07/19/objective-c-rounding-float-numbers/
或者你可以使用NSDecimalNumber功能進行舍入數字。
重複http://stackoverflow.com/questions/576110/nstimeinterval-to-readable-nsnumber – 2010-08-02 13:22:23