看板 Visual_Basic 關於我們 聯絡資訊
不知道算不算發現的太晚了,昨天才發現到有這個現象 1) Response.Write(1 / 0) 2) Dim a As Int16 = 1, b As Int16 = 0 Dim s As String = a / b Response.Write(s) 兩種寫法的執行結果都是"正無窮大" 3) Dim a As Int16 = 1, b As Int16 = 0, c As Int16 = a / b Response.Write(c) 第三種寫法的執行結果就是 System.OverflowException: 數學運算導致溢位。 也許是說除以零的結果可以輸出成字串,但不能存入Intxxxx之類的變數中 測試環境:VB2005、VB2008 另外,C#比較合理,完全不允許除以零,不管哪種寫法都是產生例外狀況 -- ▃▅▇▆▄ ▆▂▃ ` 逝去感如何能留住,半點遺留殊不易,██▅▇▄▃ ▇▃▂" . █████████▃i ▁▄▇ 更多悽悽慘慘的遭遇………██▆▃ █▅▆▃ˍ▄* ▂█▄▇▅▂. 我不知道,王~八~蛋~~! ▂▆███ █▄▃ 。fumizuki。Check。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.233.58.149
MOONRAKER:gcc有類似的「巧門」,不過反過來 12/05 23:20
MOONRAKER:在程式中寫k/0在compile-time就會被發現 12/05 23:20
MOONRAKER:宣告a=1, b=0,再來個c=a/b,就要run-time才會發現錯誤 12/05 23:21
MOONRAKER:不對…也沒有真的反過來…反正有差別就對了 @@ 12/05 23:22
fumizuki:1/0在vb.net是允許的喔 編譯通過 執行階段也不會錯誤 12/06 08:44