2014-07-06 1 views
4

이상한 오류가 발생했습니다. 코드PHP : bigint 번호 오류

$val1 = pow(2, 64); 
    $val2 = $val1 - 1; 
    echo number_format($val1, 0, '', '') . "<br/>"; 
    echo number_format($val2, 0, '', '') . "<br/>"; 

을 확인하고 출력

18446744073709551616 
18446744073709551616 

그것은`왜 18,446,744,073,709,551,615을해야 할 때 $을 val2 값 18,446,744,073,709,551,616이있다?

+0

http://stackoverflow.com/q/14572704/1190388 – hjpotter92

+0

관련 항목 : [PHP 수학 정밀도] (http://stackoverflow.com/questions/3726721/php-math-precision). –

답변

1

$ val1이 (가) float가되어 부동 정밀도가 그다지 높지 않기 때문입니다. 그냥 오히려 8해야 수동 floor((0.1+0.7)*10)에서 예를 살펴 Float precision 봐하지만 내 PC에 그것은 또한 당신이 그런 큰 숫자를 사용하려면

당신은 아마 전용 PHP 라이브러리 또는 BCMath

를 사용해야합니다 (설명서 등) 7을 반환