float a=rand()/100+50;
警告说int 转换为float 可能会数据丢失
float a=rand()/100.0+50;
警告说double 转换为float可能会数据丢失怎么样才可以安全进行数据转换int->float ,double->float,
顺利通过编译而不会警告?

解决方案 »

  1.   

    warning C4244: '=' : conversion from 'int' to 'float', possible loss of data
      

  2.   

    #pragma warning( disable : xxxx )
      

  3.   

    这个警告是正常的1、可以这样试试:
    float a= (float)(rand()/100+50); 
    float a= (float)(rand()/100.0+50); 2、加上这个屏蔽掉它
    #pragma warning(disable:4244)
      

  4.   

    float fValue = 100;
    or
    float a = (float)rand()/100+50; 
      

  5.   

    警告肯定是有的,但是你可以屏蔽它#pragma warning( disable : 4244 )
      

  6.   

    #pragma warning(disable:4244)
    加上这个 消除警告即可
      

  7.   

    该警告不会影响你的程序的运行。如果你感觉看着不舒服。
    可以尝试将其屏蔽。#pragma warning(disable:4244)
      

  8.   


    另外不推荐使用 pragma 来禁止此类警告,因为你很可能因此而错过真正需要警告的地方。
      

  9.   

    强制转换。
    或者用double不用float。
      

  10.   

    产生exe文件后,这些警告对程序的运行有没有影响.
      

  11.   

    备注一下  & UP