NSNumberFormatter *fmt = [[NSNumberFormatter alloc] init];[fmt setNumberStyle:NSNumberFormatterCurrencyStyle];[fmt setCurrencyCode:@"USD"];概述我想将我的号码格式化为货币字符串.这些是以下情况 25.00 => $2525.43 => $25.4325.4 => $25.400.00 -> $0 有没有办法在NSNumberFormatter中执行此 *** 作? 这是我现在的代码: NSNumberFormatter *fmt = [[NSNumberFormatter alloc] init];[fmt setNumberStyle: 我想将我的号码格式化为货币字符串.这些是以下情况25.00 => 25.43 => .4325.4 => .400.00 ->
有没有办法在NSNumberFormatter中执行此 *** 作?
这是我现在的代码:@interface MyCurrencyFormatter : NSNumberFormatter@end@implementation MyCurrencyFormatter- (ID)init { if ((self = [super init])) { [self setNumberStyle:NSNumberFormatterCurrencyStyle]]; [self setCurrencyCode:@"USD"]; } return self;}- (Nsstring *)stringFromNumber:(NSNumber *)aNumber { NSInteger minimumFractionDigits = [self minimumFractionDigits]; NSInteger maximumFractionDigits = [self maximumFractionDigits]; if ([self isInteger:aNumber]) { [self setMinimumFractionDigits:0]; [self setMaximumFractionDigits:0]; } Nsstring *formattednumber = [super stringFromNumber:aNumber]; [self setMinimumFractionDigits:minimumFractionDigits]; [self setMaximumFractionDigits:maximumFractionDigits]; return formattednumber;}- (BOol)isInteger:(NSNumber *)aNumber { NSDecimal decimalValue = aNumber.decimalValue; NSDecimalRound(&decimalValue,&decimalValue,NSRoundDown); NSDecimalNumber *roundedValue = [[NSDecimalNumber alloc] initWithDecimal:decimalValue] return [aNumber isEqualToNumber:roundedValue]; }@endNSNumberFormatter *fmt = [[NSNumberFormatter alloc] init];[fmt setPositiveFormat:@"
.##"];
然而,我的第一个和最后一个例子失败了.
我也尝试过:
然而,我的第三个案件失败了.有什么建议?解决方法 我认为没有办法使用普通的NSNumberFormatter来做到这一点.您可以将最小和最大小数位数设置为0,仅用于格式化NSNumberFormatter子类中的整数:这也应该处理国际号码格式.
归功于this post以确定数字是否为整数. 总结 以上是内存溢出为你收集整理的如果为0,则ios numberformatter currency删除尾随
小数全部内容,希望文章能够帮你解决如果为0,则ios numberformatter currency删除尾随小数所遇到的程序开发问题。
评论列表(0条)