c语言/c++保留1~4位小数的规律(我本以为不是4舍5入的)

个人很好奇,机器保留几位的时候,是 *直接舍去* 还是 *四舍五入* 呢?(更新2019/5/5 22:45 应该是4舍6入5成双,可以百度一下)

注:for(int i=0;i<10;i++)//i从0到9

//c代码在文章最下面

//标红的是那些不按套路出牌的保留方式

n=0.050000
n+i=0.050000 一=0.1 二=0.05 三=0.050 四=0.0500
n+i=1.050000 一=1.0 二=1.05 三=1.050 四=1.0500
n+i=2.050000 一=2.0 二=2.05 三=2.050 四=2.0500
n+i=3.050000 一=3.0 二=3.05 三=3.050 四=3.0500
n+i=4.050000 一=4.1 二=4.05 三=4.050 四=4.0500
n+i=5.050000 一=5.1 二=5.05 三=5.050 四=5.0500
n+i=6.050000 一=6.1 二=6.05 三=6.050 四=6.0500
n+i=7.050000 一=7.1 二=7.05 三=7.050 四=7.0500
n+i=8.050000 一=8.1 二=8.05 三=8.050 四=8.0500
n+i=9.050000 一=9.1 二=9.05 三=9.050 四=9.0500
########################################
n=0.005000
n+i=0.005000 一=0.0 二=0.00 三=0.005 四=0.0050
n+i=1.005000 一=1.0 二=1.00 三=1.005 四=1.0050
n+i=2.005000 一=2.0 二=2.01 三=2.005 四=2.0050
n+i=3.005000 一=3.0 二=3.01 三=3.005 四=3.0050
n+i=4.005000 一=4.0 二=4.01 三=4.005 四=4.0050
n+i=5.005000 一=5.0 二=5.01 三=5.005 四=5.0050
n+i=6.005000 一=6.0 二=6.01 三=6.005 四=6.0050
n+i=7.005000 一=7.0 二=7.01 三=7.005 四=7.0050
n+i=8.005000 一=8.0 二=8.01 三=8.005 四=8.0050
n+i=9.005000 一=9.0 二=9.01 三=9.005 四=9.0050
########################################
n=0.000500
n+i=0.000500 一=0.0 二=0.00 三=0.001 四=0.0005
n+i=1.000500 一=1.0 二=1.00 三=1.000 四=1.0005
n+i=2.000500 一=2.0 二=2.00 三=2.000 四=2.0005
n+i=3.000500 一=3.0 二=3.00 三=3.000 四=3.0005
n+i=4.000500 一=4.0 二=4.00 三=4.001 四=4.0005
n+i=5.000500 一=5.0 二=5.00 三=5.001 四=5.0005
n+i=6.000500 一=6.0 二=6.00 三=6.001 四=6.0005
n+i=7.000500 一=7.0 二=7.00 三=7.001 四=7.0005
n+i=8.000500 一=8.0 二=8.00 三=8.000 四=8.0005
n+i=9.000500 一=9.0 二=9.00 三=9.000 四=9.0005
########################################
n=0.000050
n+i=0.000050 一=0.0 二=0.00 三=0.000 四=0.0000
n+i=1.000050 一=1.0 二=1.00 三=1.000 四=1.0000
n+i=2.000050 一=2.0 二=2.00 三=2.000 四=2.0001
n+i=3.000050 一=3.0 二=3.00 三=3.000 四=3.0001
n+i=4.000050 一=4.0 二=4.00 三=4.000 四=4.0001
n+i=5.000050 一=5.0 二=5.00 三=5.000 四=5.0001
n+i=6.000050 一=6.0 二=6.00 三=6.000 四=6.0001
n+i=7.000050 一=7.0 二=7.00 三=7.000 四=7.0001
n+i=8.000050 一=8.0 二=8.00 三=8.000 四=8.0000
n+i=9.000050 一=9.0 二=9.00 三=9.000 四=9.0000


#include<stdio.h>
int main(){
    float n=0.05;
    printf("n=%f\n",n);
    for(int i=0;i<10;i++){
        printf("n+i=%f ",n+i);
        printf("一=%.1f 二=%.2f 三=%.3f 四=%.4f\n",n+i,n+i,n+i,n+i);
    }
    printf("#################################\n");
    n=0.005;
    printf("n=%f\n",n);
    for(int i=0;i<10;i++){
        printf("n+i=%f ",n+i);
        printf("一=%.1f 二=%.2f 三=%.3f 四=%.4f\n",n+i,n+i,n+i,n+i);
    }
    printf("#################################\n");
    n=0.0005;
    printf("n=%f\n",n);
    for(int i=0;i<10;i++){
        printf("n+i=%f ",n+i);
        printf("一=%.1f 二=%.2f 三=%.3f 四=%.4f\n",n+i,n+i,n+i,n+i);
    }
    printf("#################################\n");
    n=0.00005;
    printf("n=%f\n",n);
    for(int i=0;i<10;i++){
        printf("n+i=%f ",n+i);
        printf("一=%.1f 二=%.2f 三=%.3f 四=%.4f\n",n+i,n+i,n+i,n+i);
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值