今天被一個dotnet的運算規則引起的錯誤﹐搞了半天才明白﹐特貼出來告訴大家﹐以免大家走我一樣的彎路
在一段程序里發現一個錯誤﹐后來我簡化成以下程序﹐結果依然﹕
button_onclick里﹕
double intPWidth=40.0;
double intRowTotal=1.0;
double dblDrawZHeight=intPWidth * (intRowTotal * 2 / 3 + (1 / 3));
Response.Write(dblDrawZHeight.ToString());
Response.End();
結果居然是26.6666666666667;
我一開始所有的double類型都用int的﹐運算出這個錯誤結果后我改成double型仍然錯誤
調試后才發現它把(1/3)等于0
實在不明白.net這樣處理的原因
后來才發現把1/3 改成 1.0/3 即可﹐原因我不說了﹐估計大家看了也明白。