基於手機計算器百分數計算bug的一次無聊思考

2021-09-26 20:26:54 字數 867 閱讀 2824

本文純屬一點無聊的想法,甚至是謬論,希望讀者不用太較真。

在計算器出現以下截圖的計算結果,通常可以直接判定為計算錯誤(bug)。但換一種場景模式,這種結果也許挺符合人類交流的預期結果。

從左到右4個截圖:

1)按常識而言:10%+10%=0.2;

2)按常識而言:10%+10%+10%=0.3;

3)按常識而言:50%+50%=1;

4)按常識而言:25%+50%=0.75;

但截圖的實際計算結果,邏輯應該是如下:

1)10%*(1+10%)=0.11;

2)10%*(1+10%)*(1+10%)=0.121;

3)50%*(1+50%)=0.75;

4)25%*(1+50%)=0.375;

由上述分析,可以將「+」解釋為「在前者的基礎上再加x%」。

對於計算器而言,10%+10%算是一次性輸入,那麼計算結果20%是沒有問題的。

但我們實際表達時,10%+10%常常會被說成"先給10%再加10%",再讓機器去理解這句話,那麼結果應該是10%(1+10%)。

如果場景換為語音輸入的模式,那麼上面的計算結果可能算是計算機領域的一大進步吧。

php 百分數 php 百分數如何轉小數

php百分數轉小數的方法 首先建立乙個php示例檔案 然後定義乙個百分數 接著通過 float a 100 方法將百分數轉為小數 最後通過echo輸出轉換後的小數即可。php百分數轉小數,php 小數轉換百分數函式 阿星小棧 php百分號轉小數 a 20.544545 echo float a 10...

python百分數小數

百分比轉換位小數 coding utf 8 s 20 預設要轉換的百分比是字串 aa float s.strip 去掉s 字串中的 bb aa 100.0 執行環境是python2.7 其中python2.x 與 python 3x中的除法是有區別 print bb 輸出結果是 0.2 小數轉換位百...

C 基礎 百分數

double a 50 double b 100 沒有小數部分 label1.text a a b tostring 0 兩位小數 label2.text a a b tostring p tostring 0.00 tostring p3 可以設定精度 方法一 能得到你想要的小數點後位數 doub...