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[email protected]"USD";

        //通过currencySymbol 可以指定货币符号
        fmt.currencySymbol[email protected]"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* [email protected][@"零",@"壹",@"贰",@"弎",@"肆",
                    @"伍",@"陆",@"柒",@"捌",@"玖"];
    NSString* [email protected]"";

    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);
}
时间: 2024-08-14 18:05:07

Foundation框架 - NSNumber类的相关文章

黑马程序员-OC学习笔记之Foundation框架NSNumber、NSValue和NSDate

---------------------- IOS开发.Android培训.期待与您交流! ---------------------- 一.NSNumber 前几篇笔记中,小桥复习了Foundatio框架中的几个类,这三个是OC学习的尾声了. 小桥已经复习过OC数组类NSArray,也说过它只能存放OC的对象,对于基本的数据类型确无能为力,但是实际编程中经常要把基本的数据如int.float,结构体存放的OC数组中,怎么办?这里的NSNumber就有用了,它能够把基本数据类型包装成OC对象.

黑马程序员--Foundation框架之--类其他常用的类:NSNumber,NSDate

------IOS培训期待与您交流! ------- Foundation的其他常用的类:NSNumber,NSDate 一.NSNumber 这个类主要是用来封装基本类型的,OC 中的集合是不允许存入基本类型的,所以NSNumber类就诞生了,需要将基本类型封装一下,然后存进去. 从这一点上我们就可以看出NSNumber是很重要的,后面一定会经常用到. 1.封包和解包 // 创建NSNumber // 封包 NSNumber *intNumber = [NSNumber numberWithI

黑马程序员——Foundation框架常用类(NSNumber/NSValue)

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------ 简介 引入:NSArray.NSSet.NSDictionary这些OC集合都只能存放OC对象,不能存放基本数据类型(int.char.double...).如果我们想将基本数据类型存到这些OC集合中,那么我们将基本数据类型(int.char.double...)包装成OC对象,那么就可以存到OC集合中.NSNumber可以将基本数据类型包装为OC对象. NSValue:用来存储一个C或者OC的

Objective-C:Foundation框架-常用类-NSNumber

NSArray.NSDictionary是不可以存储C语言中的基本数据类型的.NSNumber可以将基本数据类型包装成对象,这样可以间接将基本数据类型存进NSArray.NSDictionary等集合类中.用法如下: #import <Foundation/Foundation.h> void number() { // 将int类型的10 包装成 一个NSNumber对象 NSNumber *number = [NSNumber numberWithInt:10]; NSLog(@"

Foundation框架 - NSDictionary类、NSMutableDictionary类

NSArray.NSSet.NSDictionary /* 集合 1.NSArray\NSMutableArray * 有序 * 高速创建(不可变):@[obj1, obj2, obj3] * 高速訪问元素:数组名[i] 2.NSSet\NSMutableSet * 无序 3.NSDictionary\NSMutableDictionary * 无序 * 高速创建(不可变):@{key1 : value1, key2 : value2} * 高速訪问元素:字典名[key] */ 字典创建 #im

OC学习笔记之Foundation框架NSNumber、NSValue和NSDate(转)

一.NSNumber OC数组类NSArray,它只能存放 OC的对象,对于基本的数据类型确无能为力,但是实际编程中经常要把基本的数据如int.float,结构体存放的OC数组中,怎么办?这里的 NSNumber就有用了,它能够把基本数据类型包装成OC对象. // 将整形包装成OC对象 NSNumber *num1 = [NSNumber numberWithInt:120]; // 将浮点形包装成OC对象 NSNumber *num2 = [NSNumber numberWithDouble:

Foundation框架 - NSException类

NSException类 WBStudentManager.h #import <Foundation/Foundation.h> NSString* const NameInvalidException ; @interface WBStudentManager : NSObject - (void)registStudent:(NSString*)name; @end WBStudentManager.m #import "WBStudentManager.h" @im

黑马程序员——Foundation框架常用类(NSDate)

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------ 简介 NSDate:用于保存时间值的一个OC类,同时提供了一些方法来处理一些与时间相关的事.NSDate对象用来表示一个具体的时间点.NSDate是一个类簇,我们所使用的NSDate对象,都是NSDate的私有子类的实体.NSDate存储的是GMT时间,使用的时候会根据 当前应用 指定的 时区 进行时间上的增减,以供计算或显示. NSDate 1.时间对象的基本使用 //第一种创建方式(里面存储

Foundation框架 - NSSet类 、NSMutableSet类

NSSet和NSArray的对比 /* NSSet和NSArray的对比 1> 共同点 * 都是集合,都能存放多个OC对象 * 只能存放OC对象,不能存放非OC对象类型(基本数据类型:int.char.float等,结构体,枚举) * 本身都不可变,都有一个可变的子类 2> 不同点 * NSArray有顺序,NSSet没有顺序 */ 重点内容 #import <Foundation/Foundation.h> #import "Person.h" static