1樓:
應該是給截尾了,也就是顯示前做了約等於處理,這個約等於的界限已經規定好了。
你在python裡試下
0.40.4*2
0.4*3
0.4*4
你會發現到後面出現了浮點的尾數,前面沒有,所以可以判斷在一定範圍內,呈現的結果做了約等於簡化。
2樓:
計算器採用了一種叫做定點數的資料型別。定點數是通過約定小數點的位置來實現小數的。
打個比方:
我們在計算器中用8個空間來儲存數字2.33。此時,我們規定小數點在第4位
那麼在儲存空間裡這個數字便被存為了 [+002][3300]
整個數字被分為了整數部分與小數部分,兩個部分都擁有準確的值,所以才能精確的表達小數
但這樣的做法也有一些不足--精度與表示範圍不能共存
如果我們想表達0.00001這樣高精度的小數,就至少要讓5位儲存去表達小數部分,而這樣做,整數部分最大也就只能表達兩位數--也就是99,拿去做小學數學都不夠用。所以在現代計算機中定點法一般只用來表示整數
為了解決這個問題,人們又搞出了乙個浮點數,也就是大多數計算機裡用來表達小數的方法。浮點數是利用科學計數法來表達小數的。還是之前的8位空間,這次我們拿出2位來表達指數,於是2.
33就被存為了 [+00233] [-2],即 。
至於浮點數精度丟失的問題,可以看看這篇:
Ricas:浮點數精度之謎
3樓:馬遙
我都沒注意計算器用的是定點數,給題主乙個贊。
這個問題簡單來說這就是浮點數和定點數的區別。
浮點數
優點:能夠用統一的方法,表示範圍變化非常大的數字,以float標準來說,32個bit就可以表示從10的負100多次方到10的正100多次方這麼大範圍。
缺點:浮點誤差問題,無法精確表示某些小數。特性類似科學計數法,只能表示「有限個有效數字」。
不知是優點還是缺點:現代CPU整合了FPU,FPU是專門給浮點運算加速的協處理器。因為有了它,現代CPU計算浮點數是非常快的。
定點數
優點:能精確表示取值範圍內的任意數字。
缺點,占用同樣bit數時表示的範圍很小。
浮點數肯定是主流,但是它使用時有一些注意事項,而且在某些場景下也會被特意換成定點數。
舉例一:初學者都要學習判斷兩個小數是否相等的方法,但是有時候會忘記:
// a和b都是float型別,判斷二者是否相等用
if ( Abs(a-b) < EPSILON其中EPSILON是乙個很小的數,根據不同場景取0.000001或0.0001等
舉例二:除了以上最基本的用法,浮點數在影象縮放等情景下也存在取整精度問題。之前認識一位大牛想改進UI縮放的效果,將浮點數全部改成了自定義的32位定點數,16位表示整數,16位表示小數。
再配合改進過的演算法,縮放誤差問題迎刃而解。
具體使用時,如果需要用定點數,既可以使用第三方的定點數程式庫,也可以自己封裝乙個適合某個特定軟體的定點數型別。
比如C#提供的Decimal可以提供和計算器一樣的精確表示,python定點數的庫名字也叫decimal
4樓:shuhari
不清楚計算器是怎麼實現的。如果要精確的話,對十進位制儲存有專門的BCD編碼方法,再比如某些語言內建的 Decimal 型別。還有一種可能是內部表示仍然是二進位制,但在輸出時進行了精度擷取,相當於執行 printf("%.
1f", num)。
如何用圖形計算器求導
電卓院亜紀良 圖形計算器求導的方式多種多樣,有單個點數值求導的,有在畫出的函式圖象上求導的,有繪制導函式圖象的,還有一些能直接求出導函式的,等等。我們以最常用的CASIO fx 9860系列 CASIO fx CG50 TI 84 Plus TI Nspire系枚舉例。所有的例子都是以 舉例的,數值...
為什麼晨光的計算器可以和卡西歐計算器做的這麼像?
蔫有準 我只想說模仿卡西歐的品牌太多了,尤其是學校旁邊的小賣部。方法一 官方防偽標籤,將標識卡左右反射,左側視角僅見黑色背景 卡西歐 字樣,右側視角僅見CASIO雷射防偽標識。方法二 依次按住 1,0 之後放開1,正版會顯示 1cos 盜版則只顯示 1 方法三 計算器自檢,步驟如下 同時按下 shi...
什麼是逆波蘭法計算器?
wp34s DM42,最強勁的RPN計算器 現在還買得到的RPN計算器 2018年 hp prime,hp12c,hp49系列 二手或魔改 wp34s 魔改 DM42 很貴 信利sc123 hp12cp的翻版,很便宜 德儀的部分機器也可以裝RPN外掛程式。另外,手機上也有很多RPN計算器軟體。WP3...