Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
05-09 15:58
관리 메뉴

zyint's blog

Floating point 본문

예전글들

Floating point

진트­ 2009. 2. 16. 15:36

Floating point

소수점을 표현하는 타입이다. float 형의 크기는 플랫폼마다 다르다.

 

소수점 표현은 다음과 같이 할 수 있다.

  1. <?php
    $a 
    1.234

    $b 1.2e3

    $c 7E-10
    ;
    ?>

 

정규식 표현:

  1. LNUM          [0-9]+
    DNUM          ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
    EXPONENT_DNUM [+-]?(({LNUM} | {DNUM}) [eE][+-]? {LNUM})
     

 

Warning: 소수점 정확도 문제

소수점 처리에서, 0.1이나 0.7과 같은 값들은 정확도에 문제가 발생할 수 있다. floor((0.1+0.7)*10) 의 경우 결과 값은 8이 아닌 7이 나오게 된다. 내부적으로 7.9 로 표현되기 때문이다.

 

마찬가지로 1/3으로 표현하는 것도,  0.3으로 표현하게 된다.

 

따라서, 소수점의 마지막 자리수 값이 정확하다고 생각하고 소수점끼리의 equal 연산은 하지 말아야 한다. 높은 정확도의 연산을 하려면  arbitrary precision math functions, gmp을 참고하라.

 

참고자료

http://www.php.net/manual/kr/language.types.float.php

 

이 글은 스프링노트에서 작성되었습니다.

Comments