【搬运】一个四舍五入的问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jewelsu/article/details/89185229

【搬运】因为原来的博客要关,所以从原来的博客搬运过来。

问题是要做一个float转int型的计算,但是涉及到小数部分四舍五入的问题。
开始找了一段代码,也是搜索到的比较流行的
data=(double)(int)(data+0.5);
试了几个数据,似乎没有问题,但是当data的设置大于int型的最大值时,结果变成了0,这就没法接受了。
新的代码是
(data > 0.0)?floor(data + 0.5):ceil(data-0.5);
这样避免了显示的类型转换,而且考虑了负数的情况。

猜你喜欢

转载自blog.csdn.net/jewelsu/article/details/89185229
今日推荐