Разделите цену в $ на частичный платеж (выпусков более 1000 в сумме)

Добрый вечер, чел.

Я закончил все кодирование и рекламу, где я покажу возможные способы для клиентов разделить оплату на 6 месяцев. Все хорошо, за исключением того, что у меня есть проблемы с выходом по новой цене, когда сумма больше 1000, я думаю, это из-за места?! в 1 000...?

Это код: Pay over 6 months: <?php if ($price_calculate['price_wo_discount']>0) echo round( ($price_calculate['price_wo_discount'])*0.16); ?>

1 ответ

Решение

Если вы попытаетесь сделать что-то подобное в PHP,

echo round( '1 000' * 0.16);

Вы бы получили Notice: A non well formed numeric value encountered in ..., Это связано с тем, что PHP не может безопасно привести строку к соответствующему числовому значению. Волшебно бросает строку в 0 и бросает уведомление. Вот почему вы получаете 0 выход.

В идеале вам нужно удалить все пробелы и запятые из вашей числовой строки, затем, возможно, использовать функцию is_numeric, чтобы определить, является ли ваша строка действительно числовой, а затем сделать round,

Также неявный кастинг в вас if ($price_calculate['price_wo_discount'] > 0 блок может привести к некоторым побочным эффектам. Учтите это в PHP:

var_dump('1 is number' > 0); //outputs true

Мой совет: сначала используйте объекты-значения для проверки ваших входных данных.

Другие вопросы по тегам