PHP의 sprintf
이 일부 숫자를 변경하는 것 같은 이상한 문제가 있습니다. 항상 가끔씩 그런 일이 발생하지는 않습니다.잘못된 번호를 표시하는 PHP sprintf
다음 코드 :
echo sprintf('%04d',$product['priceUSD']*100)."(".($product['priceUSD']*100).")";
은 $ 19.99 제품에 대한 다음과 같은 출력을 생성합니다 1998(1999)
나는이 문제를 해결할 수 있지만, 나는 그것을하고있는 이유를 알고 사랑하고, 경우 것 명백한 광기에 어떤 방법이있어.
업데이트 : float에서 int로 변환 할 때 발생하는 것처럼 보입니다. 당신이 찾고있는 무엇 숫자 형식
echo (int)($product['priceUSD']*100)."(".($product['priceUSD']*100).")";
모든 프로그래머가 알아야 할 부동 소수점 연산에 관하여 : HTTP : // 부동 소수점 --gui.de/ –