как убрать два последних нуля? - PullRequest
1 голос
/ 23 сентября 2011

У меня есть функция с именем zen_get_products_discount_price_qty($new_products->fields['products_id']), которая выводит это: $8.0000.Я хочу превратить $8.0000 в $8.00.Как я могу это сделать?

Ответы [ 7 ]

2 голосов
/ 23 сентября 2011
   $output = zen_get_products_discount_price_qty($new_products->fields['products_id']);
   $output =  substr($output,0,-2);
2 голосов
/ 23 сентября 2011

использование число_формат функция

1 голос
/ 23 сентября 2011
printf('$%.02f', 8.0000); // $8.00
1 голос
/ 23 сентября 2011

Попробуйте:

$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 голос
/ 23 сентября 2011

сначала удалите $, затем используйте функцию round ().

0 голосов
/ 10 ноября 2011

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

$currencies->format($my_price);

Проверка включает в себя / classes / currencyciesph для справки.

0 голосов
/ 23 сентября 2011

Или preg_replace:)

echo preg_replace ("/ ^ \ $ (\ d +?) (?:. \ D *)? $ /", "\ $$ 1.00", '$ 8.0000');

Выход: $ 8,00

...