簡體   English   中英

C編程比較浮點數

[英]C programming comparing floats

我的代碼中的錯誤在哪里,超級簡單,但比較未輸出正確的值。 下面的此函數在其自己的文件中,名為:FloatingPointRepresentationsFunctions.c

int FloatCompare(float number1,float number2){
    // Write the function to compare and return the corresponding value
    if(number1 < number2){
        return -1;
    }else if(number2 < number1){
        return 1;
    }else{
        return 0;
    }
}

如果浮點2大於浮點1,則函數應返回-1;如果浮點1大於浮點2,則函數應返回1。如果浮點值相等,則函數應返回0。

我的Eclipse控制台輸出(mingW):

number1: 12.000000 
number2: 11.000000 
Comp: -1
11.000000 is greater than 12.000000

這是我的主要c文件:

#include <stdio.h>

int main()
{
    float number1 = 0;
    float number2 = 0;

    int comparison;

    number1=12;
    number2=11;
    printf("number1: %f \nnumber2: %f \n", number1, number2);
    comparison=FloatCompare(number1,number2); // Compare two floating point numbers
    printf("Comp: %d\n", comparison);
    if(comparison==1){
            printf("%f is greater than %f\n",number1,number2);
    }else if(comparison==-1){
                printf("%f is greater than %f\n",number2,number1);
    }else if(comparison==0){
        printf("Number are equal\n");
    }else{
        printf("Error\n");
    }


    return 0;
}

您的主文件沒有適合FloatCompare原型。 這意味着它假定了int FloatCompare()的默認函數定義,這將導致該函數被錯誤地調用和未定義的行為

您需要在主源文件中添加一個聲明,以便它知道如何正確調用該函數。

#include <stdio.h>

int FloatCompare(float number1,float number2);

int main()
{
...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM