(C++)基础语法之四舍五入——基础巩固

重新去看那些初学时被忽略的知识点,发现自己不会的还有很多很多,故此记了些原来没有想过的点。

描述

将浮点数转换为整数类型,要求四舍五入。

输入描述:

随机输入的浮点数

输出描述:

四舍五入之后的整数

示例1

输入:

14.99

复制输出:

15

这是牛客网上的一道基础题, 基础不代表简单,只是代表它所需要的前提知识较少。

下面是C++的源代码:

#include <iostream>
using namespace std;

int main() {

    double d;
    cin >> d;
    int a = int(d);
    double b = d-a;
    if(b>=0.5){
        a++;
    }
    if(b<=-0.5){
        a--;
    }
    cout<<a;

    // write your code here......
    

    return 0;
}

解析:

        这道题看似简单,先分正负,再进行判断。但仔细一想,这道题非常值得去反复琢磨。

之所以将这一篇作为这个分类的第一篇:

为的就是告诉初学者们:

不要再用数学的角度看待问题,尝试用数据,字符的方式去看待问题,以计算机的方式去思考题目。                                

这样的思路重要到,你未来3-6个月内所有做不出来的coding题目,十有八九都是此类错误。表现为:拿到题目很懵逼,一看答案,这么简单。

四舍五入同样要对数值串进行分类,一种为正,一种为负。

由于int自动转型为截取模式,无论正负都会自动取小数点之前的,表现为正数截取后比原来小,负数被截取后比原来更大:

                                        17.88——17

                                        -17.88——  -17

因此可以将一个带有小数点的数值分为两部分:

 当数值为正时,只要进行判断b的值是否>=0.5。

 当数值为负时,由于负值Int转型后,新的数会比原来的数更靠近0,因此比原来更大。

由于公式:

                总值 = a + b;   此时由于a增加,因此b要减少

那么对这个浮点数b的判断就是,b是否<=0.5;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值