Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
mininvit
1 / 1 / 2
Регистрация: 16.07.2016
Сообщений: 185
Завершенные тесты: 1
#1

Математические функции - PHP

15.05.2017, 13:48. Просмотров 146. Ответов 7
Метки нет (Все метки)

Добрый день! Подскажите, как мне реализовать следующую задачу:

1) Создать массив с какими-то ценами, например: [50.25, 20.38, 50.78, 75.75, 50].
2) Создать массив с новыми ценами, где будут цены со скидкой 23%.
3) Добавить округление до двух цифр после запятой, чтобы не было таких цен: 58.3275.
4) Вывести массив.

Как из всех элементов массива вычесть 23% скидку?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2017, 13:48
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Математические функции (PHP):

Математические функции PHP
Есть некий текстовый файл с числовыми значениями в формате хххх.уу (хххх -...

Математические вычисления
Добрый день. Есть строка с парами вида 1000:2, 5000:3 (числа заведомо...

Математические операции в php
Добрый вечер, программисты. В общем, у меня задание, в котором необходимо...

Математические и битовые операции
Правильно ли я составил код? <?php $p = 6; $b = 3; define ("pi", 3.14);...

Какое расширение поставить, чтобы писать математические формулы на картинке?
Хотел сделать каптчу-задачку, но нужно как-то нарисовать формулы на картинке. В...

Используя логическую функцию ЕСЛИ и встроенные математические функции, построить таблицу и график значений функции на от
=ЕСЛИ((A2<0,5;SIN(A2)*COS(A2);ЕСЛИ(A2>=0,8;A2-(LN(A2+1)/2)));exp(A2^2)+ABS(TAN(A...

7
NEFFboy
11 / 11 / 6
Регистрация: 16.02.2015
Сообщений: 106
15.05.2017, 13:56 #2
Цитата Сообщение от mininvit Посмотреть сообщение
Как из всех элементов массива вычесть 23% скидку?
делишь каждый элемент массива на 100, затем умножаешь на 23 и вычитаешь полученное значение из элемента массива.
1
mininvit
1 / 1 / 2
Регистрация: 16.07.2016
Сообщений: 185
Завершенные тесты: 1
15.05.2017, 14:05  [ТС] #3
???
PHP
1
2
3
4
5
6
7
8
    $arr = [50.25, 20.38, 50.78, 75.75, 50];
    $arr_2 = [];
    for ($i = 0; $i = count($arr); $i++) {
        $arr_2 = ($i / 100) * 23;
    }
    for ($i = 0; $i = count($arr_2); $i++) {
        echo $arr_2;
    }
0
Jewbacabra
Эксперт PHP
3093 / 2680 / 1225
Регистрация: 24.04.2014
Сообщений: 8,195
15.05.2017, 14:10 #4
PHP
1
2
3
4
echo implode(' ', array_map(
    function($e) {return sprintf('%.2f', $e*0.77);},
    [50.25, 20.38, 50.78, 75.75, 50]
));
1
mininvit
1 / 1 / 2
Регистрация: 16.07.2016
Сообщений: 185
Завершенные тесты: 1
15.05.2017, 14:15  [ТС] #5
Jewbacabra, Спасибо. Но можно по обычному? Понимаю, что так проще, но я новичок, тут бы хоть с основами разобраться.) А тут такие функции, которые я ни разу не видел. Что в моём коде подправить?
PHP
1
2
3
4
5
$arr = [50.25, 20.38, 50.78, 75.75, 50];
$arr_2 = [];
for ($i = 0; $i = count($arr); $i++) {
    $arr_2[] = ($i / 100) * 23;
}
0
Jewbacabra
Эксперт PHP
3093 / 2680 / 1225
Регистрация: 24.04.2014
Сообщений: 8,195
15.05.2017, 14:19 #6
Лучший ответ Сообщение было отмечено mininvit как решение

Решение

Цикл for заменить на foreach, умножать не на 0.23, а на 1-0.23.
Добавить вывод, используя функцию printf для вывода с округлением
1
NEFFboy
11 / 11 / 6
Регистрация: 16.02.2015
Сообщений: 106
15.05.2017, 14:27 #7
Лучший ответ Сообщение было отмечено mininvit как решение

Решение

mininvit, вот так;
PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$arr = [50.25, 20.38, 50.78, 75.75, 50];
$arr_2 = [];
 
    for ($i = 0; $i < count($arr); $i++) {
        $arr_2[] = $arr[$i]-(($arr[$i] / 100) * 23);
    }
    
    for ($i = 0; $i < count($arr_2); $i++) {
        echo $arr_2[$i]."<br>";
    }
?>
в массиве $arr_2 будут содержаться значения с 23% скидкой.

Добавлено через 7 минут
ну и что бы было округление до двух цифр после точки в моем коде 10 строчку замени на:
PHP
1
echo round($arr_2[$i], 2)."<br>";
1
mininvit
1 / 1 / 2
Регистрация: 16.07.2016
Сообщений: 185
Завершенные тесты: 1
15.05.2017, 14:41  [ТС] #8
Большое спасибо. А если я хочу не вывести, а сразу занести в массив $arr_2, чтобы уже в нем хранились округленные данные, как написать?
PHP
1
$arr_2[] = round($arr_2[$i], 2).'<br>';
Добавлено через 9 минут
Все понял.
PHP
1
$arr_2[$i] = round($arr_2[$i], 2);
0
15.05.2017, 14:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2017, 14:41
Привет! Вот еще темы с решениями:

Математические функции
Вычеслить выраз

Математические функции
надо было написать математические функции проверьте, пожалуйста: #include...

Математические функции Qt
Здравствуйте! Где почитать про математические функции реализованные в Qt (если...

Математические функции
Добрый день! Вот задачка: Рассчитать значение y, определив и использовав...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru