NSDecimalNumber 是NSNumber的子类。
使用 [NSNumber numberWithDouble:]方法来格式我的NSNumber,但是,由于一些值比较大,我想要用科学计数法来表示。
NSDecimalNumber就提供了科学计数法的表示方法。
什么是科学计数法?
将一个数字表示成 (a×10的n次幂的形式),其中1≤a<10,n表示整数,这种记数方法叫科学记数法。
用幂的形式,有时可以方便的表示日常生活中遇到的一些较大的数,如:光的速度大约是300 000 000米/秒;全世界人口数大约是:6 100 000 000
这样的大数,读、写都很不方便,考虑到10的幂有如下特点:
10的二次方=100,10的三次方=1000,10的四次方=10 000……。
一般的,10的n次幂,在1的后面有n个0,这样就可用10的幂表示一些大数,如:
6 100 000 000=61×1 000 000 000=6.1×10的九次方。
任何非0实数的0次方都等于1
当有了负整数指数幂的时候,小于1的正数也可以用科学记数法表示。例如:0.00001=10的负5次方,即小于1的正数也可以用科学记数法表示为a乘10 的负n次方的形式,其中a是正整数数位只有一位的正数,n是正整数。
有效数字
有效数字是指从左面数不为0的数
例如:890314000保留三位有效数字为8.90*10的8次方
839960000保留三位有效数字为8.40*10的8次方
0.00934593保留三位有效数字为0.00935
科学记数运算
数字很大的数,一般我们用科学记数法表示,例如6230000000000;我们可以用6.23×10^12表示,而它含义是什么呢?从直面上看是将数字6.23中6后面的小数点向右移去12位。
若将6.23×10^12写成6.23E12,即代表将数字6.23中6后面的小数点向右移去12位,在记数中如
1. 3×10^4+4×10^4=7×10^4可以写成3E4+4E4=7E4
即 aEc+bEc=a+bEc (1)
2. 4×10^4-7×10^4=-3×10^4可以写成4E4-7E4=-3E4
即 aEc-bEc=a-bEc (2)
3. 3000000×600000=1800000000000
3e6*6e5=1.8e12
即 aEM×bEN=abE(M+N) (3)
4. -60000÷3000=-20
-6E4÷3E3=-2E1
即 aEM÷bEN=a/bE(M-N) (4)
5.有关的一些推导
(aEc)^2=(aEc)(aEc)=a^2E2c
(aEc)^3=(aEc)(aEc)(aEc)=a^3E3c
(aEc)^n=a^nEnc
a×10^logb=ab
aElogb=ab
6.n"E"公式
3E4E5=30000E5=3E9
即aEbEc=aEb+c
6E-3E-6E3=0.006E-6E3
=0.000000006E3
=6E-6
即aEbEcEd=aEb+c+d
得aEa1Ea2Ea3.......Ean=aEa1+a2+a3+.......+an
7.n"E"公式与数列
据n"E"公式aEa1Ea2Ea3.......Ean=aEa1+a2+a3+.......+an
得aESn
等差n项和公式na1+n(n+1)/2×d
aEna1+n(n+1)/2×d
等比n项和公式Sn=a1n(q=1)或 n(1-q^n)/1-q
aESn [Sn=a1n(q=1)或 n(1-q^n)/1-q(q≠1) ]
数列通项记数
等差:aEan=aEa1+(n-1)d
等比:aEan=aEa1q^n-1
8.aEb与aE-b
aEb=a×10^b
aEb=a×10^-b 正负b决定E的方向
科学记数意义
“aE”表示并非具有科学记数意义,并且aE=a
“Ea”表示具有科学记数意义,即Ea=1Ea a=3时 1E3=1000
aEb=c a=c/Eb
分享到:
相关推荐
然后,我们使用该处理程序对 NSDecimalNumber 进行四舍五入,并将结果转换回 NSNumber 返回。 这样的设计允许我们在代码中直接调用 `number.roundedNumberWithPrecision:` ,无需每次都创建格式化器或者手动处理...
在Objective-C(简称objc)编程语言中,类...这个例子展示了objc中类别和类方法的使用,以及如何利用`NSDecimalNumber`处理数值计算。这种编程技巧在日常开发中非常实用,尤其是在需要对现有类进行扩展或定制行为时。
- (NSDecimalNumber *)decimalNumberForKey:(id)aKey; - (NSString *)stringForKey:(id)aKey; - (NSURL *)urlForKey:(id)aKey; - (NSArray *)arrayForKey:(id)aKey; - (NSDate *)dateForKey:(id)aKey ...
- 对于 NSNumber 和 NSDecimalNumber,FormatterKit 提供了各种方法来处理货币、百分比和其他数值的格式化。这些方法可以自动处理小数点位置、千位分隔符以及货币符号等,使数值显示更加规范。 4. **URL 解析和...
- **定义方法**:在类中定义方法时,可以使用`+`表示类方法,使用`-`表示实例方法。 - **实例化对象**:通过`[[ClassName alloc] init]`或`[ClassName new]`创建对象实例。 - **调用方法**:使用点号(`.`)或消息传递...
当点击“load json”按钮时,会触发`loadJson`方法,通过HTTP请求获取JSON数据,然后使用`NSJSONSerialization`解析成数组,再将数组赋值给`dataList`,并刷新表格视图显示数据。 ```objc - (void)loadJson { ...
通过compare:方法为Foundation中已经支持顺序的类定义了顺序compare:方法: NSString , NSDate , NSNumber , NSIndexPath以及它们的子类,例如NSMutableString和NSDecimalNumber 。 在其他情况下,比较器仅对...
开发者需要利用UIKit框架,尤其是UIButton和UILabel组件来构建用户界面,同时使用Foundation框架中的数学运算类(如NSNumber和NSDecimalNumber)来进行数值计算。此外,事件驱动编程模型使得按钮点击事件可以触发...
3. **数学运算**:Objective-C 提供了 NSNumber 和 NSDecimalNumber 类来处理数值,计算器的核心逻辑就是基于这些类进行数学运算。 4. **MVC(Model-View-Controller)模式**:Calculator7 应该遵循 MVC 设计模式,...