2011-09-23 1 views

답변

1

이 시도 :

$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! 
1

제 $ 제거 후() 함수를 사용하여 둥근.

2
$output = zen_get_products_discount_price_qty($new_products->fields['products_id']); 
    $output = substr($output,0,-2); 
+0

함수 substr()이 최선의 해결책은 아닙니다. 그것은 숫자를 반올림하지 않았다! – Scoutman

+0

@Scoutman 값은 '$'접두사가 붙습니다. 따라서 수학 연산에 사용하지 않을 것입니다. 따라서 아마도 여기에서 substr을 반향시키고 싶을 것입니다. –

0

또는 preg_replace이다 :

에코 preg_replace이다 ("/^\ $ (\ D +) (:?.? \ D *) $ /", "\ $$ 1.00" '$ 8.0000');

출력 : $ 8.00

1
printf('$%.02f', 8.0000); // $8.00 
0

어떤 SUBSTR()의 printf()로 number_format을 사용하지 마십시오() 등의 솔루션을 제공합니다. 디스플레이 요구 사항이 다를 수있는 USD 이외의 통화는 처리하지 않습니다. 대신 Zen Cart 글로벌 $ 통화 개체를 사용하십시오.

$currencies->format($my_price); 

참조를 확인하려면/classes/currencies.php를 확인하십시오.