我如何决定在c

时间:2016-06-04 09:35:54

标签: c floating-point

我如何决定我的浮点数应该使用多少小数。看到我有这个代码`

int main (void)
{
    printf("please give me an integer: ");
    float num = GetFloat(); 

    float numb;  

    numb = num;
    numb = numb /2;

    printf("the half of %f is %f\n", num, numb);
}

但计算机在

之后打印出很多零

EKS:

  

请给我一个整数: 4
  4.000000的一半是2.000000

所以它可能很像3位小数而不是7位数:

  

请给我一个整数: 10
  10.0的一半是5.00

     请给我一个整数: 3
  3.00的一半是1.50

3 个答案:

答案 0 :(得分:1)

您必须使用printf格式参数:

int main (void)
{
    printf("please give me an integer: ");
    float num = GetFloat(); 

    float numb;  

    numb = num;
    numb = numb /2;

    printf("the half of %.3f is %.3f\n", num, numb);

    return 0;
}

在示例中,语法%.3f告诉printf打印3位小数。

答案 1 :(得分:1)

您也可以始终使用%g格式说明符。它使用fe格式格式化浮点数,具体取决于有效位数。

int main (void) {
    printf("Please give me a floating point number: ");

    // Read the value from the user.
    float num;
    scanf("%f", &num); 

    // Compute it's half.
    float half = num /2;

    // Display the result.
    printf("The half of %f is %g\n", num, half);
}

答案 2 :(得分:0)

这是printf的格式类型

%[flags][width][.precision][length]specifier

在这种情况下,您应该拥有此printf("the half of %.3f is %.3f\n", num, numb);