读书人

double转int解决思路

发布时间: 2012-03-14 12:01:13 作者: rapoo

double转int
如题,需要进行double到int的转换
若按下面方法:
double tt=((24.4-14.4)/10.0);
int ttt=int(tt);
得出ttt=0;因为精度的问题;

因此,我做了一个变通,代码如下:
double temp=1.0e-12; //不能太小,因为有计算即本身数据精度的制约
double tt=((24.4-14.4)/10.0+temp);
int ttt=int(tt);

这样得出的结果:ttt=1
请问这样处理是否合适,有无更优的方法?谢谢!

[解决办法]
我觉得这方法还是不错的,你可以把temp稍微再大点吧。
[解决办法]
用math.h 里的 floor() , ceil() 函数可以取上限,取下限,例如:
floor 2.8 是 2.000000
floor -2.8 是 -3.000000
ceil 2.8 是 3.000000
ceil -2.8 是 -2.000000

四舍五入要自己考虑,例如 用 绝对值加0.5 以后再处理。
[解决办法]
一切办法都没用, 直接找一个高级运算库即可.
[解决办法]
合适,很好

读书人网 >C++

热点推荐