簡體   English   中英

如何將NSNumber舍入為零小數空格

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM