控制精度-----直接截取,不需四舍五入

以小数点后取6位为例

方法一:

        scanf("%d%d",&a,&b);
        double num = a * pi + 2 * b;
        printf("%.6lf\n",num - 0.0000005);

方法二:转为字符串

        int a,b;
        char an[100];
        scanf("%d%d",&a,&b);
        double num = a * pi + 2 * b;
        sprintf(an,"%.9lf",num);
        for(i = 0;i < 100;i ++)
            if(an[i] == '.')
            break;
        an[i + 7] = '\0';
        printf("%s\n",an);

方法三:转为整型

        int a,b;
        scanf("%d%d",&a,&b);
        double num = a * pi + 2 * b;
        int index = num * 1e6;
        num = index / 1e6;
        printf("%.6lf\n",num);

猜你喜欢

转载自blog.csdn.net/qq_41929449/article/details/81508171
今日推荐