怎么这么简单的三行代码竟然也运算错了??关于四舍五入的
float round(float v , float n)
{
float temp;
temp = pow( 10 , n);
float f = (int)(v * temp + 0.5) / temp;//监视这个表达式没错
return f;//运行到这里f就变了。好像没有四舍五入的样子
}
这个函数的作用是把v的浮点数只保留n位小数的四舍五入算法。再watch里面运行到float f = (int)(v * temp + 0.5) / temp;的时候,我监视了(int)(v * temp + 0.5) / temp表达式的值,这时没有错,但是赋值到f后,再监视f的值就错了,好像没有四舍五入的样子