當 Matlab 要顯示一個不太大或不太小 (指絕對值而言) 的數, 他顯示到小數點下第四位,而將小數點下第五位四捨五入。例如
1 / 3計算結果是 0.3333,那是小數點下第五位捨去的結果。但是
1 / 7計算結果是 0.1429,那是小數點下第五位進位的結果 (1/7 應該是 0.142857循環)。
但是當 Matlab 要顯示很大或很小 (指絕對值而言) 的數,
他就會改用 五位有效數字 的科學記數法:
例如
1 - (1/3 + 1/3 + 1/3)也得到答案 0,而且
1 - (7 * (1/7))也是 0。不過
1 - (1/7 + 1/7 + 1/7 + 1/7 + 1/7 + 1/7 + 1/7)就成了 2.2204e-16,也就是
因為科學記數法裡面那個 K 的關係, 使得小數點實際上應該前後移動 (若 K 是正數,向右移; 若 K 是負數,向左移), 所以我們又稱這樣的數為 浮點數 (floating point numbers)。 相對地,一般寫下小數的方法,因為小數點的位置是固定的, 又稱為 定點數 (fixed point number)。
如果科學記數法只取五位有效數字,就在第六位做四捨五入。 例如在 Matlab 輸入一個常數
0.00000123456他就幫你變成 1.2346e-06;或者
31415927用五位有效數字寫成科學數字,就變成 3.1416e+07。
習題