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
转载于:https://blog.51cto.com/zhangjiansong0/1414144