怎麼會這樣 電腦沒有想像中的可靠


frank830 wrote:


看錯了

原來e...(恕刪)


微軟會說你用到盜版的了
呵呵呵呵

不過,真的有這個 BUG.....
sunnymoon wrote:
EXCEL大家很常用...(恕刪)

ms的if是把數值轉成2進位來比較才丟數值出去

到了2010版本一樣是這樣
23=10111
23.69=10111.101.................不循環小數

所以在妳C1成出來的數值,會是0.1011........
所以後面越錯越多

接著就錯光光了
OpenOffice是用10進位IF
所以值是正確的

chrimpeg wrote:
0000001

小數點第3位以後無條件捨去法,可以去條捨去的位數設定
調大就會跑出來了


補充一下
23.69-0.69會出現後面那一個1..也是同理2進位換算的問題
我記得Excel有工程精確模式
但不知道怎麼改就是了,因為excel是很早期的引擎改良上來的
當時考慮到數學演算轉換法沒有這麼周密
所以現在才會有一些奇奇怪怪的問題跑出來
如果A1,B1,改成24, 24.72 這一對數字
結果會相反
chrimpeg wrote:
問題是回傳值是 1 ...(恕刪)


原po寫得有點複雜,簡單說就是excel的

23.69-23=0.690000000000001

omg
sunnymoon wrote:
D1的儲存格是=IF(C1*100/A1>3,1,0)(恕刪)


改成 IF((C1*100/A1)>3,1,0) 看看會不會正常

剛試了一下不行

怎麼會跑出0.6900000001 錯誤的源頭
早就發現了.....

我之前用Word也是一樣,畫個組織圖畫到快發瘋,後來乾脆直接用筆畫在紙上還比較快

用手畫再掃描進電腦裡改就好了....


結論:電腦是給不會用電腦的人用的....
THKAW wrote:

ms的if是把數值...(恕刪)

原來如此~
長見識了~
那問一下Open Office 和 ms 的可通用嗎~?
大隻黑豬 wrote:
改成 IF((C1*...(恕刪)

唉,眼殘儲存個拖錯...

剛剛那些不存在



google doc一樣結果

我猜想為了兼容舊版xls
google doc也是採用2進位計算

手邊沒有二進位計算機,晚點來用手把0.69二進位化開看看是甚麼結果
原因這裡可以看見!

點我

http://support.microsoft.com/kb/214118/EN-US/
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!