1. 使用int值計算double結果時(如比例值:期望結果0~1之間)砚亭,結果異常(實際結果0.0)
static void Main(string[] args)
{
int a = 350;
int MapWidth = 501;
int MapHight = 580;
double Zrate;
Zrate = Convert.ToDouble(a * MapHight / MapWidth);
Console.WriteLine(Zrate);
Console.ReadKey();
}
上述代碼可以返回正確結果,關鍵在于使用顯式轉換命令Convert.ToDouble()時澈吨,a * MapHight / MapWidth的運算順序要最后才能出現(xiàn)非整數(shù),如果寫成(a / MapWidth) * MapHight放椰,或是a / MapWidth* MapHight匈辱,都會返回0.0缔刹。導致變量結果錯誤或者程序異常。
2. int類型變量與整數(shù)混合運算
static void Main(string[] args)
{
int a = 5;
double Zrate = a /10;
Console.WriteLine(Zrate);
Console.ReadKey();
}
這樣寫的話劣针,雙精度的變量Zrate的結果是0.0(命令行顯示是0)校镐。要寫成 a /10.0才可以返回正確數(shù)值。