[英]How do I round a NSNumber to zero decimal spaces
如何將NSNumber舍入到零小數空格,在下面的行中它似乎保留小數空格:
NSNumber holidayNightCount = [NSNumber numberWithDouble:sHolidayDuration.value];
通常轉換為int truncates。 例如,3.4變為3(根據需要),但3.9也變為3。 如果發生這種情況,請在投射前添加0.5
int myInt = (int)(sHolidayDuration.value + 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];
如果你只需要一個整數,為什么不使用int
int holidayNightCount = (int)sHolidayDuration.value;
根據定義,int沒有小數位
如果需要使用NSNumber,可以將Double轉換為Int,然后使用int創建NSNumber。
int myInt = (int)sHolidayDuration.value;
NSNumber holidayNightCount = [NSNumber numberWithInt:myInt];
你也可以這樣做:int roundedRating =(int)round(rating.floatValue);
使用舊的C函數floor()對數字進行設置,然后您可以創建更合適的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功能來舍入數字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.