1
NSDecimalNumber 유형에 대해 ceilf와 floorf에 대해 동일한 메소드가 있습니까? 나는 어떤 것도 찾지 못했습니다.NSDecimalNumber의 ceilf 및 floorf와 동일한 메소드
NSDecimalNumber 유형에 대해 ceilf와 floorf에 대해 동일한 메소드가 있습니까? 나는 어떤 것도 찾지 못했습니다.NSDecimalNumber의 ceilf 및 floorf와 동일한 메소드
간단한 해결 방법 : 숫자 객체의 float 값을 얻을 ceilf()
또는 floorf()
호출 할 수 있습니다 : 그렇지 않으면, 당신은 – decimalNumberByRoundingAccordingToBehavior:
방법을 사용할 수 있습니다
ceilf([decimalNumber floatValue]);
합니다.
먼저 사용하려는 각 반올림 모드에 대한 NSDecimalNumberBehaviors
프로토콜을 구현해야합니다 : 다음
@interface DecimalRounder : NSObject <NSDecimalNumberBehaviors> { }
@end
@implementation DecimalRounder
- (NSRoundingMode)roundingMode {
return NSRoundUp;
}
- (short)scale {
return 0;
}
@end
과 (12.5 귀하의 진수입니다 가정) :
DecimalRounder *rounder = [[DecimalRounder alloc] init];
NSDecimalNumber *decimalNumber = [[NSDecimalNumber alloc] initWithFloat:12.5];
NSDecimalNumber *roundedNumber = [decimalNumber decimalNumberByRoundingAccordingToBehavior:rounder];
NSLog(@"decimalNumber: %@", decimalNumber);
NSLog(@"roundedNumber: %@", roundedNumber);
당신에게 ' 얻을 것이다 :
decimalNumber: 12.5
roundedNumber: 13
float (또는 double) 변환이 pr을 잃어 버리기 때문에 두 번째 옵션을 사용했습니다. ecision. – rein