看板 Soft_Job 關於我們 聯絡資訊
※ 引述《accessdenied (存取違規)》之銘言: : 標題: Re: [討論] 請大家聊聊 JavaScript的缺陷 : 時間: Mon Nov 16 14:46:50 2020 : : https://i.imgur.com/inyE92c.jpg
: : 有誰可以告訴我,JavaScript 的 toFixed()為什麼遇到1,4,7這幾個數字後面的5不會 : 進位呢? 這件事情你拿去 csharp 的 Math.round(dbl,2) 跑也是一樣會有誤差的啦. float & rounding 本身就是個複雜議題, 多數人連 rounding 其實有兩種 mode 都不知道. 這也是為什麼 csharp 推了一個 decimal 來記錄整數位跟帶小數位. 問題有兩個, 一個是 js 本身採取的 rounding 策略是什麼, 另一個是 double(number) 用 byte 表達帶小數的極限. 浮點數是所有語言共同的地雷. : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.71.20.209 (臺灣) : ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1605509212.A.E12.html : 推 alihue: 一定是你不懂 js ,寫不好不要怪工具! 11/16 15:10 不懂的是 float, 目前的語法世界對於 float 確實都還有很多挑戰. 這樣躲雷是能躲到啥時呢 : → er230059: 這個問題在python不也一樣嗎? 11/16 15:11 噓 別說出來, 不然他們很尷尬的. -- 之間的世界,反抗軍啟蒙軍的交集 帶著 Android 去旅行、去發現 在身邊渾然不覺的 另一個世界。 全世界,都是我們的 足跡與遊樂場。 ~ The world around you is not what it seems. ~ http://ingress.tw -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.61.209.201 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1605512086.A.F71.html
samuel1988: ...躲避球大師耶。你怎麼不說Javascript要解決這問題 11/16 16:14
samuel1988: 要用什麼代價 11/16 16:14
常見的作法是往前拖到整數位再處理啊. 這在以前各語言都很常見喔. ※ 編輯: TonyQ (210.61.209.201 臺灣), 11/16/2020 16:15:24
samuel1988: 轉整數處理,當作字串,正則。敢問你提到python和cah 11/16 16:16
samuel1988: arp會這樣處理嗎? 11/16 16:16
拖整數位, 不是當作字串喔, 這你就誤會了. 而是不使用 byte 表達而已. 常見作法是往前拖 10^n 再加上 floor. 運算完再除以 10^n. https://docs.microsoft.com/zh-tw/dotnet/api/system.decimal?view=net-5.0 csharp 的 decimal 原理一樣是提到整數位處理啊, 紀錄 hi 位跟 lo 位. python 我沒研究, 但我相信方法不會有太大落差. ※ 編輯: TonyQ (210.61.209.201 臺灣), 11/16/2020 16:26:12
x123356: 會扯浮點數問題來攻擊特定語言一看就是計概沒學好 11/16 17:02
newhandfun: 同意樓上 11/16 17:03
jej: 推樓樓上 這麼神奇 為什麼不去問神奇的海螺IEEE怎麼規範呢 11/16 19:54
gn01838335: 所以你寫程式會看IEEE嗎? 11/16 20:10
art1: 遇到跟浮點數相關的問題就會去查 IEEE 了,例如那個進位問題 11/16 21:22
netburst: bigdecimal安定 11/17 01:16
splitline: 沒IEEE754概念的人真的可以先不用說話== 11/17 01:32
gn01838335: 有人說要懂IEEE才能寫JavaScript 11/17 06:35
gn01838335: 我面試快要100多人有多少人真的懂IEEE? 11/17 06:35
gn01838335: 10個裡面7-8個根本不懂,原理是什麼美人管,只會說引 11/17 06:35
gn01838335: 用什麼套件和方法解決。 11/17 06:35
gn01838335: 所以以後只要有人不懂IEEE就可以把人刷掉是嗎? 11/17 06:35
gn01838335: 感謝給新的標準。 11/17 06:35
gn01838335: 軟體版一堆人真的與現實偏差。 11/17 06:35
gn01838335: 是要懂IEEE才能寫程式喔?一堆單元程式不能把這種例 11/17 06:37
gn01838335: 外測出來嗎? 11/17 06:37
gn01838335: 很多bug在單元測試就可以抓出分析誰還在跟你懂IEEE 11/17 06:38
onlyeric23: 你要怎麼刷人也跟大家沒關係吧 11/17 08:48
jej: 你這小便就像是會便秘一定要學會吃麻醬一樣 11/17 08:49
jej: 所以不吃麻醬就不會便秘 別意氣用事 11/17 08:49
jej: 是狡辯 sorry 11/17 08:51
啥洨 XD ※ 編輯: TonyQ (61.231.44.97 臺灣), 11/17/2020 10:09:08