C#整数运算导致CA2233溢出警告

时间:2019-10-29 09:11:21

标签: c# overflow

我有以下代码触发器CA2233警告“更正方法Foo中的'latitudeBam * 90'操作中的潜在溢出”

double Foo(int latitudeBam)
{
   var latitudeInDegrees = (latitudeBam * 90) / (double)int.MaxValue;
   return latitudeInDegrees; 
}

我不确定警告在哪里。是因为latitudeBam的值可能接近int.MaxValue,从而溢出了int.MaxVlaue,还是因为与从int.MaxValue到dobule的转换有关?

1 个答案:

答案 0 :(得分:0)

您的第一个理论是正确的:您的计算可能会溢出int.MaxValue,因为它将任何当前int值乘以90。实际上,当您的方法为latitudeBam时,int.MaxValue可能已经等于My unauthorized mobile app叫。