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

c#整数运算导致CA2233溢出警告,c#,overflow,C#,Overflow,我有以下代码触发CA2233警告“纠正方法Foo中操作'latitudeBam*90'中的潜在溢出” 我不知道警告在哪里。是因为latitudeBam的值可能接近int.MaxValue,因此溢出int.MaxVlaue,还是因为与int.MaxValue到dobule的转换有关?您的第一个理论是正确的:您的计算可能溢出int.MaxValue,因为它将任何当前int值乘以90。事实上,调用方法时,latitudeBam可能已经等于int.MaxValue double Foo(int lati

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


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

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

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