ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 짜증나는 부동소수점.
    컴퓨터/C/C++ 2007. 7. 9. 14:13
    1. atof(_ttof) 사용시 MT(VC2003)를 쓰게 되면 반환 값이 삐꾸가 될 수가 있음.
    double temp = atof("72.975"); // 72.974999999999994
    double temp = atof("72.875"); // 72.875000000000000

    // MT를 쓰지 말던가.. 쓴다고 하면 값을 보정해 줘야 해주자. 어떻게? 자~알

    2. 큰수 + 작은 수 더할 때.
    double a = 8190185674868700.000;
    double b = 8190185674868700.50000000001;

    cout.setf(ios_base::fixed, ios_base::floatfield);
    cout.precision(12);

    cout << a + 0.50000000001 << endl; // 8190185674868701.000000000000
    cout << b << endl;                       // 8190185674868700.000000000000

    // 나눠서 해주면 괜찮다 -. -
    a + 0.5;
    a + 0.00000000001;




Designed by Tistory.