您的位置:首页 > 其它

NSDecimalNumber NSNumber 区别 使用方法

2011-06-13 10:41 176 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: