用C其实也挺简单的,有个投机取巧的办法
我的想法是,既然希望保留两位小数,那么就必须看第三位小数,如果大于5,就进位,那么我们可以让第三位加上5,因为最后第三位是舍掉的,因此无论怎么改变第三位也没有问题。这样就想起了强制类型转换,呵呵,自己乘上100,然后加上0.5,再强制类型转换成int,将第三位舍掉,自己除100,恢复原来的数字。
#include<iostream>
using namespace std;
int main()
{
float length=1.9865;
length*=100;
length+=0.5;
length=(int)length; //length = ((int)(length*200)+1) / 200;
length/=100;
cout<<length<<endl;
return 0;
}
原文:http://www.cnblogs.com/2014acm/p/3887393.html