PAT---出租计价---小数的四舍五入

想把这个代码留下来的原因是,在这个代码的编写过程中,遇到了小数转化为整数的问题。在此简单总结一下:


【1.直接把小数部分抹去:】

     in a;

    double b;

    b=2.4;           //            b=2.6;

    a=b;

在这种状况下,a的值是2.如果b的值是2.6,即小数部分大于0.5的话也是如此。

【2.小数部分四舍五入】

    int a;

   double b;

    b=2.4;          //            b=2.6

    a=(b+0.5);   //a=(int)(b+0.5);

如果 b 是 2.4 的话,a 的值就是 2,但是如果 b 是 2.6 的话,a 的值就是 3;

下面解释一下为什么是加上 0.5 呢?

因为在从字符型变量到整形变量的隐式转换时,程序自动将后面的小数抹掉,无论是大于还是小于0.5,但是如果加一个0.5的话,原本大于0.5的就会在整数部分加 1,从而实现“五入”,而小数部分小于 0.5 的话。即使加上 0.5,也没有改变整数部分的个位数,所以在转化时被抹掉 ,实现“四舍”。

【3】.还有一种是,例如,每五分钟进行一次变化,小于五分钟则不变,就像是寄快递,低于一公斤不多收费,大于一公斤的每公斤收取某一定的费用,这样的话,你必须得知道你的快递是超了几个一公斤,一公斤不太直观,我们可以假设是五公斤的增幅,每五公斤增加十块钱的费用,那么你就必须知道你的快递,多出了几个五公斤,这样用用到了下面的方法:

     int    a; 

     a=16;

     in  b;

      b=16/5;

“/”是只保留整数部分的除法,结果是一个整数


“%”是一个取余数的除法,结果是除法中的余数。


拓展一下说,将一个大数的每个位上的数按顺序输出的话,就需要这个两个除法了。

例如:

         12345

按顺序输出的话,就是‘1’,’2‘,’3‘,’4‘,’5‘;

12345%10=5

12345/10=1234;

1234%10=4

1234/10=123;

123%10=3

123/10=12;

12%10=2

12/10=1;

1%10=1

1/10=0;

【代码示例】

 下面是一个运用到小数舍去的实例:


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值