1-2在经过自己写的四舍五入后就变成-0.99(取后两位)
return static_cast<double>( static_cast<int>(( dValue ) * 100 + 0.5 )) / 100;
请问怎么解决?
return static_cast<double>( static_cast<int>(( dValue ) * 100 + 0.5 )) / 100;
请问怎么解决?
调试欢乐多
{
double bb;
int result;
bb = aa - (int)aa;
if(bb>0)
{
if((1 - bb)>bb)
{
result = (int)aa;
return result;
}
else
{
result = (int)aa+1;
return result;
}
}
else if(bb<0)
{
if((1+bb)>-bb)
{
result = (int)aa;
return result;
}
else
{
result = (int)aa-1;
return result;
}
}
else
{
return (int)aa;
}
}你参考一下
我找到一个简单方法
double MyRound(double dValue)
{
double epsilon = 0.000001;
if (( dValue - 0 ) > epsilon )
{
return static_cast<double>
(static_cast<int>(( dValue ) * 100 + 0.5 )) / 100;
}
else
{
return static_cast<double>
(static_cast<int>(( dValue ) * 100 - 0.5 )) / 100;
}
}