gpt4 book ai didi

cocoa - NSDecimalNumber 的 ceilf 和 Floorf 等效方法

转载 作者:行者123 更新时间:2023-12-03 16:50:59 26 4
gpt4 key购买 nike

NSDecimalNumber 类型的 ceilf 和 Floorf 是否有等效方法?我好像没找到。

最佳答案

简单的解决方案:您可以获取数字对象的浮点值并调用ceilf()floorf():

ceilf([decimalNumber floatValue]);

否则,您可以使用-decimalNumberByRoundingAccordingToBehavior:方法。

首先,您需要为要使用的每种舍入模式实现 NSDecimalNumberBehaviors 协议(protocol):

@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

关于cocoa - NSDecimalNumber 的 ceilf 和 Floorf 等效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2787724/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com