What's the use of suffix `f` on float value

前端 未结 7 568
失恋的感觉
失恋的感觉 2020-11-28 04:25

I am wondering what the difference is between these two variables in C:

float price = 3.00;

and

float price = 3.00f;


        
相关标签:
7条回答
  • 2020-11-28 05:26

    Adding few more combination of comparisons between float and double data types.

    int main()
    {
        // Double type constant(3.14) converts to Float type by 
        // truncating it's bits representation 
        float a = 3.14; 
        // Problem: float type 'a' promotes to double type and the value 
        // of 'a'  depends on how many bits added to represent it.
        if(a == 3.14)   
            std::cout<<"a: Equal"<<std::endl;
        else
            std::cout<<"a: Not Equal"<<std::endl; 
    
        float b = 3.14f; // No type conversion
        if(b == 3.14)    // Problem: Float to Double conversion
            std::cout<<"b: Equal"<<std::endl;
        else
            std::cout<<"b: Not Equal"<<std::endl;
    
        float c = 3.14; // Double to Float conversion (OK even though is not a good practice )
        if(c == 3.14f)  // No type conversion 
            std::cout<<"c: Equal"<<std::endl;  // OK
        else
            std::cout<<"c: Not Equal"<<std::endl;
    
        float d = 3.14f;
        if(d == 3.14f)
            std::cout<<"d: Equal"<<std::endl; // OK
        else
            std::cout<<"d: Not Equal"<<std::endl;
    
        return 0;
    }    
    

    Output:

     a: Not Equal
     b: Not Equal
     c: Equal
     d: Equal
    
    0 讨论(0)
提交回复
热议问题