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);
}

Foundation框架 - NSNumber类的更多相关文章

  1. iOS Foundation 框架基类

    iOS Foundation 框架基类 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转 ...

  2. Objective-C:Foundation框架-常用类-NSString全解

    Foundation框架中常用的类有字符串.集合.字典等,这里介绍字符串NSString.本文分别介绍了NSString的创建.从文件里读取NSString字符串.通过函数改变外部的NSString变 ...

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

    NSArray.NSDictionary是不可以存储C语言中的基本数据类型的.NSNumber可以将基本数据类型包装成对象,这样可以间接将基本数据类型存进NSArray.NSDictionary等集合 ...

  4. Objective-C:Foundation框架-常用类-NSObject

    NSObject是所有类的基类,其常见用法有: #import <Foundation/Foundation.h> @interface Person : NSObject - (void ...

  5. Foundation框架 - NSDictionary类、NSMutableDictionary类

    NSArray.NSSet.NSDictionary /* 集合 1.NSArray\NSMutableArray * 有序 * 高速创建(不可变):@[obj1, obj2, obj3] * 高速訪 ...

  6. Foundation框架 - NSException类

    NSException类 WBStudentManager.h #import <Foundation/Foundation.h> NSString* const NameInvalidE ...

  7. Foundation框架—日期类(NSDate)

    一 时间类NSDate .创建一个日期对象     NSDate *date1 = [[NSDate alloc] init]; //创建了一个当前的时间点     NSDate *date2 = [ ...

  8. Objective-C:Foundation框架-常用类-NSDate

    直接上代码吧: #import <Foundation/Foundation.h> #pragma mark 日期创建 void dateCreate() { // date方法返回的就是 ...

  9. Objective-C:Foundation框架-常用类-NSNull

    集合中是不能存储nil值的,因为nil在集合中有特殊含义,但有时确实需要存储一个表示“什么都没有”的值,那么可以使用NSNull,它也是NSObject的一个子类. #import <Found ...

随机推荐

  1. JDK 动态代理 源码简单分析

    代理的作用就是在访问真实对象之前或者之后可以额外加入一些操作. JDK  的动态代理 只需要 5 步. 真实对象必须要实现接口,首先创建一个接口 public interface HelloWorld ...

  2. Selenium2+python自动化25-js处理日历控件(修改readonly属性)【转载】

    前言 日历控件是web网站上经常会遇到的一个场景,有些输入框是可以直接输入日期的,有些不能,以我们经常抢票的12306网站为例,详细讲解如何解决日历控件为readonly属性的问题. 基本思路:先用j ...

  3. EAScript 2016的新增语法(1)

    1)let 语法,这个和var的声明类似,但是,只存在于其所在的代码块里. 举例: var x=1 console.log(x) { let x=2 console.log(x) } console. ...

  4. libev 学习使用

    libev 简单的I/O库.  a high performance full featured event loop written in c libev 的大小也比 libevent 小得多并且自 ...

  5. ros中删除某个包之后用apt安装的包找不到

    原因是工作空间devel里还存有原来的二进制可执行文件,将build和devel内容全删除后再catkin_make就好了

  6. Bootstrap模态框垂直居中展示的方法

    在bootstrap.js中加入以下代码:

  7. 2014年spark开发者大赛火热进行中!

    “发现最有正能量的网络达人”,Spark开发者大赛火热进行! 2014年9月30日,2014 Spark开发者大赛在北京正式启动.本次大赛由Spark亚太研究院联合国内领先的IT技术创新与发展的互联网 ...

  8. Spark GraphX宝刀出鞘,图文并茂研习图计算秘笈与熟练的掌握Scala语言【大数据Spark实战高手之路】

    Spark GraphX宝刀出鞘,图文并茂研习图计算秘笈 大数据的概念与应用,正随着智能手机.平板电脑的快速流行而日渐普及,大数据中图的并行化处理一直是一个非常热门的话题.图计算正在被广泛地应用于社交 ...

  9. Codeforces 1023 A.Single Wildcard Pattern Matching-匹配字符 (Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Fi)

    Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final) A. Single Wildcard Patter ...

  10. Windows下python的第三方库的安装

    D:\Python27\Scripts\pip.exe install beautifulsoup4