在一个CEdit框中输入99999999999999
然后用
CString strValue;
GetDlgItemText(IDC_EDIT1,strValue);
float f=atof(strValue);
结果f的值竟然是1.00000e+014
!!!!!!!!!!!!!!!!!!!!!!!!!!!
我日呦!!!!!!!!!
请问谁知道这是怎么回事,怎样解决?
立刻给分!!!!!!!
(请动手自己处理一下)

解决方案 »

  1.   

    试过了,不行呀,老大,
    输入数字位数超过6位就出这个问题
    比如输入999999.00时f=9999999.12
    可输入9999999.00时f=1.00000e+007
    !!!!!!!!!!!!!!!!!!!!!!
    我日死他老木呀!!!!!!!怎么会出现这种情况呢?怎么办呢?
      

  2.   

    你的过界。float只能32位,最大4G
    _int64 f=_atoi64(strValue);
      

  3.   

    如果_int64 f=_atoi64(strValue);
    将这个给一个float,它只能用科学计数法表示
      

  4.   

    我已经用doube代替float,然后问题就OK了,谢谢大家的参与!