俺简单地做了个,但里面有 (int)value类型转换,感觉满足不了要求,真求相?
public static int GetInt(double value)
{
int result = 0;
if (value == 0.0)
{
result = 0;
}
else
{
double temp = 0.0;
if (value > 0.0)
{ try
{
result = (int)value;
temp = value - result;
if (temp > 1 || result < 0)
{
throw new OverflowException("数据溢出!");
}
if (temp >= 0.5)
{
result++;
}
}
catch (Exception ex)
{
throw new OverflowException("数据溢出!");
} }
else if (value < 0)
{
try
{
result = (int)value;
temp = value - result;
if (temp <= -1)
{
throw new OverflowException("数据溢出!");
}
if (temp <= -0.5)
{
result--;
} }
catch (Exception ex)
{ throw new OverflowException("数据溢出!");
}
}
}
return result;
}
public static int GetInt(double value)
{
int result = 0;
if (value == 0.0)
{
result = 0;
}
else
{
double temp = 0.0;
if (value > 0.0)
{ try
{
result = (int)value;
temp = value - result;
if (temp > 1 || result < 0)
{
throw new OverflowException("数据溢出!");
}
if (temp >= 0.5)
{
result++;
}
}
catch (Exception ex)
{
throw new OverflowException("数据溢出!");
} }
else if (value < 0)
{
try
{
result = (int)value;
temp = value - result;
if (temp <= -1)
{
throw new OverflowException("数据溢出!");
}
if (temp <= -0.5)
{
result--;
} }
catch (Exception ex)
{ throw new OverflowException("数据溢出!");
}
}
}
return result;
}
参考代码:http://blog.csdn.net/cnming/article/details/1645045