다양한 지역에서 화폐 값의 형식을 정확하게 해제
화폐 값을 처리하려면 화폐 금액을 나타내는 문자열을 숫자 수량으로 변환해야 하는 경우가 많습니다. PHP에서는 이를 달성하기 위해 parsefloat() 함수를 활용할 수 있습니다. 그러나 로케일에 따라 달라질 수 있는 값을 처리할 경우 소수 구분 기호가 다를 수 있습니다. 이는 간단한 parsefloat(str_replace(',', '.', $var)) 접근 방식에 대한 과제를 제기합니다.
포괄적인 솔루션
이 로케일을 해결하려면 -종속 문제인 경우 다양한 소수 구분 기호 및 천 단위 구분 기호를 고려하면서 부동 소수점 값을 효과적으로 추출하는 다음 솔루션을 고려하세요.
public function getAmount($money) { $cleanString = preg_replace('/([^0-9\.,])/i', '', $money); // Remove non-numeric characters $onlyNumbersString = preg_replace('/([^0-9])/i', '', $money); // Extract only numbers $separatorsCountToBeErased = strlen($cleanString) - strlen($onlyNumbersString) - 1; // Determine extra separators $stringWithCommaOrDot = preg_replace('/([,\.])/i', '', $cleanString, $separatorsCountToBeErased); // Replace separators $removedThousandSeparator = preg_replace('/(\.|,)(?=[0-9]{3,}$)/i', '', $stringWithCommaOrDot); // Remove excess thousand separators return (float) str_replace(',', '.', $removedThousandSeparator); // Convert to float with dot as decimal separator }
장점 및 주의 사항
이것은 솔루션은 다양한 지역의 통화 문자열에서 부동 소수점 값을 추출하는 안정적인 방법을 제공합니다. 광범위한 테스트를 통해 소수점 구분 기호로 쉼표나 점, 천 단위 구분 기호가 포함된 값을 포함하여 광범위한 시나리오에 대한 정확성이 검증되었습니다.
그러나 주의할 점은 두 자리를 초과하는 소수 부분을 처리할 때 실패할 수 있다는 것입니다. 이 제한 사항을 해결하려면 코드의 정규식 패턴을 적절하게 수정하세요.
실제 구현
솔루션은 https://github.com의 라이브러리 내에 배포됩니다. /mcuadros/currency-Detector는 지역별 설정에 따라 금전적 가치를 식별하고 처리하는 데 특화된 서비스입니다.
위 내용은 다양한 로케일의 문자열에서 금전적 가치를 정확하게 구문 분석하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!