2012-06-14 3 views
6

을 int로 INT 포맷 변환하는하지만, 나는이 얻을 것이다 솔루션을 발견 캔트 - 내가 (INTVAL 사용하고 있습니다> 7,000 7000PHP는이 요청에 대한 죄송합니다

을)과로 number_format()을하지만 그냥 줄 것이다 나 7이 아닌 7000

$myVal = '7,000'; 
echo intval($myVal); 

이 같은 7

가로 number_format와 함께 간다 반환()

내가 무슨 일을하고 있는가?

+0

PHP 설치가','가 소수점 구분 기호 인 국가에 현지화되어 있습니까? – gcochard

+0

당신의 현지화에서 @Greg가 말한 것을 확인하십시오. 그렇다면 Windows를 사용하고 있습니까? –

답변

6

intval()은 쉼표 때문에 사용자가 가지고있는 문자열과 작동하지 않습니다. 당신에게 당신이 PHP> = 5.3을 사용하는 경우

echo intval(str_replace(',', '', $myVal))

10

(또는 적어도 버전 1.0과 함께 "국제"확장 설치) : 당신은 str_replace()를 사용하여 다음 intval()과 같이 호출하여 쉼표를 제거 할 수 있습니다 NumberFormatter 클래스를 사용하여 로캘 별 번호를 구문 분석 할 수도 있습니다.

$myVal = '7,000'; 
$nf = new NumberFormatter("en_EN", NumberFormatter::DECIMAL); 

var_dump($nf->parse($myVal, NumberFormatter::TYPE_INT32)); 

# output: int(7000) 

5.3보다 작은 PHP 버전을 사용하는 경우 @KevinS를 사용하는 것이 좋습니다. 해결책.

+0

이것은 더 좋은 대답입니다, 감사합니다! – thefreeman

관련 문제