作者fumizuki (蒙面加菲狮)
看板Visual_Basic
标题[.NET] 除以零
时间Fri Dec 5 19:59:18 2008
不知道算不算发现的太晚了,昨天才发现到有这个现象
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
1F:→ MOONRAKER:gcc有类似的「巧门」,不过反过来 12/05 23:20
2F:→ MOONRAKER:在程式中写k/0在compile-time就会被发现 12/05 23:20
3F:→ MOONRAKER:宣告a=1, b=0,再来个c=a/b,就要run-time才会发现错误 12/05 23:21
4F:→ MOONRAKER:不对…也没有真的反过来…反正有差别就对了 @@ 12/05 23:22
5F:→ fumizuki:1/0在vb.net是允许的喔 编译通过 执行阶段也不会错误 12/06 08:44