在C中返回特定的小数位数

时间:2018-05-16 09:36:20

标签: c decimal

我想知道如何返回特定数量的小数。我的代码在下面,我想只返回一个十进制值,但我找不到正确的语法。 (例如x = 3.465 ..但我想返回x = 3.4)

    double avg(int* grade, int len){
    int i; float sum=0.0;

    for(i=0;i<len;i++){
    sum+=*(grade+i);
    }

    return sum/len;
    }

3 个答案:

答案 0 :(得分:2)

为什么?

精度仅在向用户显示时很重要;在那之前,你当然应该使用最高精度吗?

要在类似printf语句的内容中格式化float,请使用%3.1f - 字段宽度为3,小数点后1位数。

答案 1 :(得分:1)

由于你在求和整数,你可以将整数域中的平均值乘以10,并在实域中除以10。

{Vertex: {…}}

答案 2 :(得分:-1)

为了使事物更具活力,可以执行以下操作

#include <stdio.h>
#include <math.h>

double trunc_dec(double number, unsigned char length) {
    int mult = pow(10, length);
    return trunc(number * mult) / mult;
}

int main() {
    printf("%f\n", trunc_dec(15.234, 1));
}