나는 $8.0000
을 출력하는 zen_get_products_discount_price_qty($new_products->fields['products_id'])
이라는 함수를 가지고 있습니다. $8.0000
을 $8.00
으로 바꾸고 싶습니다. 어떻게해야합니까?마지막 두 개의 제로를 제거하는 방법?
답변
이 시도 :
$value = '$8.0000';
$value = str_replace('$', '', $value);
$value = number_format($value, 2);
echo $value;
http://at2.php.net/number_format
이 값이 제대로 얻을로 number_format를 사용하는 것이 중요합니다. substr() 함수는 마지막 두 개의 0 만 삭제합니다. number_format() 함수는 숫자를 반올림합니다.
number_format(8.1199, 2); // == 8.12 - correct
substr(8.1199, 0, -2); // == 8.11 - false!
사용 number_format 기능
제 $ 제거 후() 함수를 사용하여 둥근.
$output = zen_get_products_discount_price_qty($new_products->fields['products_id']);
$output = substr($output,0,-2);
함수 substr()이 최선의 해결책은 아닙니다. 그것은 숫자를 반올림하지 않았다! – Scoutman
@Scoutman 값은 '$'접두사가 붙습니다. 따라서 수학 연산에 사용하지 않을 것입니다. 따라서 아마도 여기에서 substr을 반향시키고 싶을 것입니다. –
또는 preg_replace이다 :
에코 preg_replace이다 ("/^\ $ (\ D +) (:?.? \ D *) $ /", "\ $$ 1.00" '$ 8.0000');
출력 : $ 8.00
printf('$%.02f', 8.0000); // $8.00
이 어떤 SUBSTR()의 printf()로 number_format을 사용하지 마십시오() 등의 솔루션을 제공합니다. 디스플레이 요구 사항이 다를 수있는 USD 이외의 통화는 처리하지 않습니다. 대신 Zen Cart 글로벌 $ 통화 개체를 사용하십시오.
$currencies->format($my_price);
참조를 확인하려면/classes/currencies.php를 확인하십시오.
몰랐습니다. 고맙습니다. – rlemon