取近似值
2015-07-02 20:10
337 查看
问题描述:如果小数点后面的第一个小数位大于或者等于5则向上取整,否则向下取整。
问题分析:整数好理解,就是我们常用的四舍五入,用输入的数+0.5然后取整输出就好。
关键是负数,这个问题描述的很不清楚,按理来说-5.5向上取整得到的应该是-5,可是,华为oj平台得到的结果是-6才是争取的,所以,如果是复数我们只能这么判断,先将这个数取反(得到正数),然后+0.5,然后用int来截断取整,最后输出的时候再将负号加回去。
-(int)(-a+0.5)
或者
(int)(a-0.5)
代码如下:
int jinsizhi(float n)
{
return (int)(((n>0.0)?(n+0.5):(n-0.5)));
}
问题分析:整数好理解,就是我们常用的四舍五入,用输入的数+0.5然后取整输出就好。
关键是负数,这个问题描述的很不清楚,按理来说-5.5向上取整得到的应该是-5,可是,华为oj平台得到的结果是-6才是争取的,所以,如果是复数我们只能这么判断,先将这个数取反(得到正数),然后+0.5,然后用int来截断取整,最后输出的时候再将负号加回去。
-(int)(-a+0.5)
或者
(int)(a-0.5)
代码如下:
int jinsizhi(float n)
{
return (int)(((n>0.0)?(n+0.5):(n-0.5)));
}
相关文章推荐
- Cling项目中最新2.0版本的使用
- makefile中$0,$n,$*,$#等
- 2014成都百万职工职业技能大赛计算机程序员决赛 技能大赛决赛题目
- 办事
- 函数对象
- ideviceinstaller报Segmentation fault: 11错误解决过程
- 在没有工具的情况下检查SSD 的TRIM功能有没有打开
- 在没有工具的情况下检查SSD 的TRIM功能有没有打开
- jquery源码之when
- 巧用powerpoint制作符合期刊要求的复合图
- XSS的原理分析与解剖
- LocalBroadcastManager原理和机制
- mysql读写分离(主从复制)实现
- How Much Did It Rain? Winner's Interview: 1st place, Devin Anzelmo
- C++程序设计之四书五经[转自2004程序员杂志]--下篇
- SHINE OPENCART 自适应 多用途主题模板 ABC-0021
- SHINE OPENCART 自适应 多用途主题模板 ABC-0021
- 判断主机是否支持远程开机?
- 需求文档的类别及适用情况
- POJ-3279(Fliptile)--简单搜索