PHP는 가격 형식에서 0.005에서 0.01로의 변환을 무시합니다. </p><p>Magento의 통화 형식 문제를 해결하려고 했으나 PHP에서 문제를 발견했습니다</p><p><br /></p>
P粉2758839732023-08-09 10:40:33
31.005는 실제로 두 숫자 사이에 있습니다. https://php.net/float에서 부동 소수점 정밀도를 확인하세요.
으아아아(PHP 및 기타 언어에는 31.005라는 숫자가 없습니다..)
디스플레이 요구 사항에 맞게 충분히 정확하면서도 오류가 최소화된 숫자를 제공해야 합니다. 이는 반올림 모드를 지정하여 달성할 수 있습니다. 예를 들어 31.005를 31.01로 반올림하려는 경우 반올림 또는 반내림을 선택할 수 있습니다.
으아아아droopsnoot님의 리뷰는 이렇습니다
Olivier가 댓글에서 상기시켰듯이 기본 모드는 반 짝수 반올림(뱅커 반올림이라고도 함)입니다.
또한 그들은 매직 넘버 2
을 사용하는 대신 클래스 상수 NumberFormatter::CURRENCY를 사용하는 것이 "더 형식적"일 것이라고 지적했습니다. 으아아아이렇게 하면 코드가 더 잘 통신할 수 있습니다. 그렇지 않으면 숫자 2가 숫자의 자릿수 또는 정밀도로 해석될 수 있지만 이 경우에는 그렇지 않습니다. PHP 매뉴얼에서 모든 스타일 상수를 찾을 수 있습니다.
참고: 이것은 단지 PHP에만 국한된 문제가 아닙니다. 이 숫자를 Javascript에 전달하고 Javascript로 형식을 지정해야 할 때 동일한 문제가 발생합니다.