回看板
Disp BBS
看板
C_Chat
作者
Wardyal
(記得簽到B站漫畫)
標題
[閒聊] 工程師才懂的笑話
時間
Fri Jan 21 16:21:30 2022
剛剛看到的
https://i.imgur.com/UeBuvTy.jpg
https://i.imgur.com/1qUWOKJ.jpg
https://i.imgur.com/JZPY3pH.jpg
https://i.imgur.com/hsR0C39.jpg
所以為什麼有多0.00000004
0.1 + 0.2 不是 0.3 嗎
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.10.227.236 (臺灣)
※ 文章代碼(AID): #1XwcqDca (C_Chat)
※ 文章網址:
https://www.ptt.cc/bbs/C_Chat/M.1642753293.A.9A4.html
推
doramon888
: 一加一等於多少......
1F 01/21 16:22
推
zetarv
: 笑死,浮點數的bug
2F 01/21 16:22
推
newgunden
: 表示編碼常數設定有問題
3F 01/21 16:23
推
yankeefat
: 你的浮點運算壞掉了
4F 01/21 16:23
推
adgbw8728
:
https://0.30000000000000004.com
5F 01/21 16:23
Floating Point Math
→
none049
: 世界上有10種人,懂二進制的跟不懂的
6F 01/21 16:23
→
Wardyal
: 殺小
7F 01/21 16:23
推
god78987
: google的到0.1+0.2
8F 01/21 16:23
→
gcobc12632
: 笑死 你可以Google一下精度損失 有滿多講解的
9F 01/21 16:24
推
hgs1906
: XDDDDD
10F 01/21 16:24
推
a1919979
: 就叫你%d中間要加數字了
11F 01/21 16:24
推
rrraaayyy
: ; ;
12F 01/21 16:24
推
bightg30098
: js吧
13F 01/21 16:25
推
cismjmgoshr
: 浮點數本身的誤差
14F 01/21 16:25
推
pponywong
: 再精確一點是 3.00000000000000044409e-01
15F 01/21 16:27
推
kaitokid1214
:
https://i.imgur.com/tvTPTA5.jpg
16F 01/21 16:27
推
arrenwu
: 表示他用的是 double float ?
17F 01/21 16:27
→
pponywong
: 浮點數是 IEEE754 規定的
18F 01/21 16:27
推
inte629l
: IEEE754
19F 01/21 16:27
→
arrenwu
: (single) float 去算出來會是 0.3
20F 01/21 16:28
→
gcobc12632
:
https://i.stack.imgur.com/CoCpE.png
21F 01/21 16:29
→
pponywong
: single point 是 3.00000011920928955078e-01
22F 01/21 16:29
→
s7503228
: int!!!先int!!!!
23F 01/21 16:29
推
gama
: 考慮用decimal嗎
24F 01/21 16:31
推
hey1590
: 記得round啦 很多bug都是這樣來的
25F 01/21 16:32
推
arrenwu
: 這反映的是浮點數的等號沒太大意義。LeetCode上面就有問
題是跟這個有關係
26F 01/21 16:32
→
dreamnook2
: js的浮點數問題 有名到被拿來當考題
最近我還有遇到空白檢查不出來的狀況-_-
28F 01/21 16:32
推
greg90326
: 午告靠北
30F 01/21 16:34
推
teleportcat
: 笑死
31F 01/21 16:34
推
tsunamimk2
: IEEE 754精度問題w
32F 01/21 16:34
→
hey1590
: 我上次就遇到數學函式的定義域傳入float 但在運算的過程
就是多了後面導致error
33F 01/21 16:35
→
tsunamimk2
: 然後不要對兩個浮點數比較是否相等www
35F 01/21 16:35
推
zjes40604
: 直接宣告int啦
36F 01/21 16:35
→
tsunamimk2
: 要避免這種問題可以依照需要的精度乘以10^n
全部用整數運算 然後轉換回去之後四捨五入
不只是js 只要是IEEE754就有這問題 精度是有限的
37F 01/21 16:36
推
arcanite
: 我笑了XD
40F 01/21 16:37
推
s7503228
: 那就跟猴子被電還有買牛奶的笑話一樣
工程師在笑 其他人都不懂
41F 01/21 16:38
→
tsunamimk2
: 特別是牽扯到金錢或者科學運算的時候...
43F 01/21 16:38
推
wei115
: 幹,我居然笑了 真的有夠宅wwww
44F 01/21 16:39
推
KJC1004
: 16樓證明js就是邪教
每個坑都能讓工程師debug一整天
45F 01/21 16:41
推
s87879961
: 軟體工程師
47F 01/21 16:42
推
aaaaooo
: 這問題大概要等到量子電腦普及才有解
48F 01/21 16:42
→
tsunamimk2
: 那個 其實如果你從c開始寫 就沒差了..w
量子電腦嗎...我不認為現在的"量子"電腦能夠處理連續
49F 01/21 16:42
推
pponywong
: 1.0 + machine epsilon = 1.0 阿
所以浮點數 ==, != 是有一個 espilon 範圍的
51F 01/21 16:44
→
CaponeKal
: 記得這遊戲很硬核 一般人要玩很久才搞懂
53F 01/21 16:45
推
tsunamimk2
: machine epsilon 就是為了科學計算定義的咩...
其實不是 是因為連續計算 特別是乘法之後...
然後與其去為了程式語言或者平台調整 不如直接算整數.
54F 01/21 16:45
推
pponywong
: 詳細可以看LAPACK DLMACH 的定義
57F 01/21 16:46
→
tsunamimk2
: 特別是金融 交易所 公開市場這種應用..
58F 01/21 16:47
推
pponywong
: 記得digicurrency 也有人用python去抓虛擬幣值
59F 01/21 16:49
推
allen20937
: 有時候遇到這種情況真的會找Bug找到哭出來,尤其是兩
個浮點數比較數值的時候,真的只有一個幹字
60F 01/21 16:49
推
tsunamimk2
: 應該說量子電腦應該無法超過戈德爾不完備
62F 01/21 16:49
→
pponywong
: 結果沒考慮的浮點數 結果自動交易賠錢 XD
63F 01/21 16:49
→
tsunamimk2
: 抓歸抓啊 爬蟲隨便抓 反正是string..
是啊 XD
64F 01/21 16:49
→
gcobc12632
: 遇到浮點數我一律轉成字串用BigDecimal計算==
66F 01/21 16:49
→
tsunamimk2
: 處理浮點數比較一定要考慮精度啦..
67F 01/21 16:50
推
BSpowerx
: 以前被這個問題搞過,從此再也不信任浮點數
68F 01/21 16:50
→
tsunamimk2
: 其實電腦是無法表示整個實數域的...
我記得可以用鴿籠原理證明
然後又會牽扯到哥德爾不完備
所以計算機處理浮點數 就跟上面講的一樣 要定義
最極限的 epsion
epislon
69F 01/21 16:51
推
pponywong
: 除了 machine epsilon 還有safe minimum
underflow threshold, largest exponent before over
75F 01/21 16:53
→
tsunamimk2
: 我記得只要是數值運算的套件都會有工具幫忙
77F 01/21 16:53
→
pponywong
: flow, overflow threshold
78F 01/21 16:53
推
gn0111
: 因為浮點數
79F 01/21 16:53
→
tsunamimk2
: 之前就遇過有人沒搞清楚這個寫出來的python跑結果
然後論文出去之後被...
80F 01/21 16:54
推
sbreezer
: 這篇好臭
82F 01/21 16:54
→
pponywong
: 所以科學計算是蠻複雜的 除了演算法本身 連機器的運算
精準度都要考慮
83F 01/21 16:55
推
assassin762
: 西洽果然一堆肥宅工程師,好可憐
85F 01/21 16:55
→
tsunamimk2
: 所以最好裝computing server的時候IT要設好啊...
以前在lab有用science linux與python設定過一次
不過當時其實也是照著套件的README去搞 也沒多想XD
86F 01/21 16:56
推
seaEPC
: 某方面來說這不是bug就是了,語言就照他設計的方式在運作
89F 01/21 17:02
推
alpho
: 那張js 的圖看一次笑一次w
90F 01/21 17:03
推
sky001tp
: 這東西竟然可以在C洽討論的這麼熱烈
91F 01/21 17:04
→
tsunamimk2
: 這不是bug啊 是計算理論的極限
92F 01/21 17:04
推
kirimaru73
: 如果電腦一個位元剛好有10種狀態的話 0.1+0.2不是問題
93F 01/21 17:04
推
DANANPA
:
https://youtu.be/CiKUMWu7AmU
94F 01/21 17:04
→
tsunamimk2
: ECMAScript那種坑是因為這東西本來就是疊床架屋的..
95F 01/21 17:05
→
kirimaru73
: 但現實剛好只有兩種狀態,所以0.1和0.2他其實都不認識
96F 01/21 17:05
推
assassin762
: 不過這個只要是電資的學生大概就都會知道了吧,沒在
唸的除外
97F 01/21 17:06
→
kirimaru73
: 電腦只認識0.5, 0.25, 0.125, 0.0625, 0.03125 ......
99F 01/21 17:06
推
s2327259
: 看到浮點數就猜到要玩這個梗
294F 01/22 02:45
推
Girls2fan
: 大一計算機程式實作會遇到的
295F 01/22 04:12
推
tmwolf
: 這串好可怕
296F 01/22 09:48
推
questionboy
: C洽到底多少工程師看板
297F 01/22 10:42
推
lolitass
: 不要用浮點 給我用INT
浪費記憶體的傢伙
298F 01/22 22:15
--
作者 Wardyal 的最新發文:
+7
[閒聊] 手機突然都點不開推特隱藏內容 - Marginalman 板
作者:
Wardyal
27.52.4.9
(台灣)
2025-08-26 13:33:26
11F 7推
+4
Re: [閒聊] :以後做愛都當夢貼上來就好 - Marginalman 板
作者:
Wardyal
27.52.4.9
(台灣)
2025-08-26 13:22:17
6F 4推
+11
[馬娘] 這是中國人的梗嗎 - C_Chat 板
作者:
Wardyal
27.52.4.9
(台灣)
2025-08-26 13:15:27
22F 12推 1噓
+15
[閒聊] 櫻島麻衣踩油門 - C_Chat 板
作者:
Wardyal
27.52.4.9
(台灣)
2025-08-26 09:07:07
16F 15推
[25夏] 快去看拔作島第六集 快快快! - C_Chat 板
作者:
Wardyal
27.52.4.9
(台灣)
2025-08-25 12:30:11
6F 2推 3噓
點此顯示更多發文記錄