Foundation框架 - NSNumber类

NSNumber类

NSFormatter

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {

        NSLog(@"1******************* NSFormatter ***********************");

        NSNumber* nb1=[NSNumber numberWithInt:25];
        NSNumber* nb2=[[NSNumber alloc]initWithBool:YES];
        NSNumber* nb3=[NSNumber numberWithChar:255];
        NSNumber* nb4 =[NSNumber numberWithUnsignedInteger:-1];
        NSNumber* nb5=[NSNumber numberWithDouble:12.5];
        NSNumber* nb6=[NSNumber numberWithFloat:12.89];
        NSNumber* nb7=[NSNumber numberWithInteger:12];
        NSNumber* nb8=[NSNumber numberWithLong:123123];
        int n=[nb1 intValue];

        //打印观察现象
        NSLog(@"%d",n);
        NSLog(@"int nb1=%@",nb1);
        NSLog(@"BOOL nb2=%@",nb2);
        NSLog(@"char nb3=%@",nb3);
        NSLog(@"nb4=%@",nb4);
        NSLog(@"nb5=%@",nb5);
        NSLog(@"nb6=%@",nb6);
        NSLog(@"nb7=%@",nb7);
        NSLog(@"nb8=%@",nb8);

        if (nb4.unsignedIntegerValue==NSUIntegerMax) {
            NSLog(@"-1和[%ld]相等",NSUIntegerMax);
        }
        NSLog(@"nb4=[%@]",nb4);

        NSComparisonResult result =[nb1 compare:nb2];
            NSLog(@"%ld",result);
        if (result==NSOrderedDescending) {
            NSLog(@"nb1>nb2");
        }else if(result==NSOrderedAscending){
            NSLog(@"nb1<nb2");
        }else{
            NSLog(@"nb1=nb2");
        }

NSNumberFormatter

        NSLog(@"1******************* NSNumberFormatter *****************");

        NSNumber* nbInt=[NSNumber numberWithInt:345678];
        NSNumberFormatter* fmt=[[NSNumberFormatter alloc]init];

        fmt.numberStyle=NSNumberFormatterDecimalStyle;
        fmt.numberStyle=NSNumberFormatterCurrencyStyle;
        fmt.numberStyle=NSNumberFormatterNoStyle;     //无格式
        NSString* formatted=[fmt stringFromNumber:nbInt];
        NSLog(@"[%@]格式化后:[%@]",nbInt,formatted);


        //产生一个浮点数
        NSNumber* nbDouble=[NSNumber numberWithDouble:23.45678f];

        fmt.numberStyle=NSNumberFormatterDecimalStyle;

        NSString* fmtedDbl=[fmt stringFromNumber:nbDouble];
        NSLog(@"[%@]格式化后:[%@]",nbDouble,formatted);

        //设置小数四舍五入
        fmt.roundingMode=NSNumberFormatterRoundFloor;  //后面所有舍掉
        fmt.roundingMode=NSNumberFormatterRoundHalfUp; //四舍五入
        fmt.roundingMode=NSNumberFormatterRoundUp;     //直接进位(全入)
        fmt.roundingMode=NSNumberFormatterRoundDown; //

        NSLog(@"[%@]格式化后:[%@]",nbDouble,fmtedDbl);
        //设置小数的位数(默认是小数点三位)


        //货币格式
        fmt.numberStyle=NSNumberFormatterCurrencyStyle;

        //通过currencyCode 能够指定货币代码(人民币:CNY)
        fmt.currencyCode=@"USD";

        //通过currencySymbol 能够指定货币符号
        fmt.currencySymbol=@"HKD";
        formatted= [fmt stringFromNumber:nbInt];
        NSLog(@"[%@]格式化货币样式后:[%@]",nbInt,formatted);
    }
    return 0;
}

练习:随机输入一串阿拉伯数字,将其转换成大写金额形式。

#import <Foundation/Foundation.h>
void lowerToUpper(NSString* number);
int main(int argc, const char * argv[])
{
    @autoreleasepool
    {
        lowerToUpper(@"56");
    }
    return 0;
}

//实现转换函数
void lowerToUpper(NSString* number)
{
    //定义一个大写数组
    NSArray* upper=@[@"零",@"壹",@"贰",@"弎",@"肆",
                    @"伍",@"陆",@"柒",@"捌",@"玖"];
    NSString* result=@"";

    for (int i=0; i<[number length]; i++) {
        //NSUInteger location;
        //NSUInteger length;
        NSRange range={i,1};//指定位置和长度

        //-substringWithRange: 依照所给出的位置,长度,从字符串中截取子串
        NSString* str=[number substringWithRange:range];

        int value=[str intValue];

        result=[result stringByAppendingString:upper[value]];
    }
    NSLog(@"转换后的结果为:  %@",result);
}

转载于:https://www.cnblogs.com/mfmdaoyou/p/7279094.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值