瀏覽單個文章
nawtequalizer
*停權中*
 

加入日期: Feb 2005
文章: 358
引用:
作者goodromhome
我用ASP.NET計算30÷2(2+3)÷5,你猜怎麼了?
居然不能編譯....
是微軟的IDE有BUG嗎?
還是我的英特爾CPU等級太低嗎?
不知道wolframalpha網站是用甚麼IDE
以及甚麼等級的CPU...

我沒用過ASP.NET,所以下面只是我猜的

我猜只是ASP.NET不清楚「乘法符號省略」的規則,或是沒有定義到這樣的狀況。
若運算式中,「括號」前面有「數字」時,同時括號內只有數字運算並沒有x,y等變數的情況下,你用的那版ASP.NET並沒有定義這種狀況,所以可能會發生語法錯誤的warning,甚至或無法編譯等error。
像是把這個式子放到google計算機,他會把『30÷2(2+3)÷5』運算式修正為『((30 ÷ 2) * (2 + 3)) ÷ 5 』,中間的乘法符號就會多出來了,所以可以得到15這個答案。
程式都是人寫,也都是人去定義的程式的流程,以及各種狀況,所以沒有定義到的部份就沒辦法得到結果,或是有出現沒有考慮到狀況,就可能得到不穩定的結果。
舊 2011-04-15, 07:14 PM #398
回應時引用此文章
nawtequalizer離線中