2011-03-08 6 views

답변

1

캐스트 및 printf() 결과 : 그 캐스트는 과학적 표기법의 문자열로 표현 된 숫자를 이해하지 못하기 때문에 작동하지 않습니다 int로 캐스팅 것을

printf('%.0f', (float) '8.64E+14'); 

참고. 그리고 일부 시스템에서는 주어진 숫자가 너무 커서 int에 맞지 않으므로 PHP가 대신 부동 소수점 숫자를 사용할 수 있습니다.

+0

그 내용은 일부 아키텍처에서는 -1391067136이 출력됩니다. – Tim

+0

@Tim : 864000000000000을 인쇄합니다. 이는 일부 빌드에서 정수 오버플로가 발생했기 때문입니다. 십진수를 떨어 뜨리는 플로트로 인쇄하면 효과가 있습니다. – BoltClock

+0

빌드가 8.64E + 24를 처리 할 수 ​​있습니까? – Tim

1

이것은 이미 실제 값입니다. 값 유형은 float입니다.

$float = 8.64E+14; 
var_dump($float); //will give you float 8.64E+14 
+0

actaually 자사의 csv 파일 값이지만 정수 값을 원합니다. – pooja

+0

글쎄, 당신은'(int)'를 사용하여 캐스트 할 수 있습니다. 매뉴얼을 참고하십시오 : http://www.php.net/manual/en/language.types.integer.php#language.types.integer.casting – JohnP

+0

'(int)'과학 표기법을 인식하지 못합니다. – BoltClock

관련 문제