2011-09-23 10 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() удаляет только два последних нуля. Функция 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

0

НЕ использовать любой зиЬзЬг(), Е(), number_format() и т.д. решений. Они не заботятся о валютах, кроме доллара США, где могут быть разные требования к отображению. Вместо этого используйте Zen Cart global $ currencies object:

$currencies->format($my_price); 

Check содержит/classes/currencies.php для справки.

Смежные вопросы