이거 버그인가요?? > 자유게시판

자유게시판

이거 버그인가요?? 정보

이거 버그인가요??

본문

<?
$a = "260000";
$b = "11111111111";
$c = "11111111111111111";
echo number_format($a + $b + $c);
?>
또는
<?
$a = '260000';
$b = '11111111111';
$c = '11111111111111111';
echo number_format($a + $b + $c);
?>
결과값 : 11,111,122,222,482,224 ...??????
11,111,122,222,482,224..?? +2는 어디서 나온거지...
나와야할값은 11,111,122,222,482,222인데....

이거 버그인가요??
지금... 배째식으로
echo number_format($a + $b + $c -2);
<실제 이런식으로 소스가 짜여있지 않습니다.>
이런식으로 처리했는데.
추천
0
  • 복사

댓글 11개

16자리까지는 정상인데요......17자리부터는 안되네여...............
그문제가 PHP_INT_MAX 과 관련이 있는듯 보이는데......
PHP에는 초보라...........ㅎㅎㅎ
$c값이 정수값을 표현하는 수치를 넘었으므로 실수로 전환이 됩니다.
echo 0 + $c;를 해보면 알 수 있어요... 그럼 $a + $b + $c 값은 실수가 되지요.
거기서 number_format을 했으니 실수를 정수로 근접치 계산하면서 2가 더 추가되는 것 같습니다.
좋은정보 감사합니다.
17이상은 못쓰게 하면되겠네요.
단위가 만원단위인데 17*10000 은... 약간 말이 안되기는 하네요^^
감사합니다.
The size of an integer is platform-dependent, although a maximum value of about two billion is the usual value (that's 32 bits signed). 64-bit platforms usually have a maximum value of about 9E18. PHP does not support unsigned integers. Integer size can be determined using the constant PHP_INT_SIZE, and maximum value using the constant PHP_INT_MAX since PHP 4.4.0 and PHP 5.0.5.

약 이십억의 최대 값 (32 비트 서명) 일반적인 가치는 비록 정수의 크기는 플랫폼에 따라 달라집니다. 64 비트 플랫폼은 일반적으로 약 9E18의 최대값이 있습니다. PHP는 부호없는 정수를 지원하지 않습니다. 정수의 크기는 상수 PHP_INT_SIZE를 사용하여 확인할 수 있습니다 최대값은 PHP 4.4.0과 PHP 5.0.5 이후 상수 PHP_INT_MAX을 사용합니다.
아하~ 좋은 정보 감사합니다.
테스트로 데이터값을 17자리까지 갈겨놨는데..... 결국은...... 필요없는 걱정이였군요...
정말 감사합니다.
자콥스웰?님과 드림님 정말감사합니다.^^
지금 하고 있는 기본단위가 만원이네요...
17자리까지 않쓰는거죠 ㅠ.ㅠ;;;;;
© SIRSOFT
현재 페이지 제일 처음으로