У меня проблема с вычислением на PHP. Выходное эхо имеет неправильное значение. Например, эхо с 3500 должно быть 475. Вместо этого я получаю 525? Где я ошибаюсь?Неверный вывод после вычисления PHP
Я пытаюсь создать систему для расчета платы за обслуживание. Плата будет автоматически генерироваться суммой. Для первой части 2500 евро плата за обслуживание составит 15%. Для второй части (от 2500 до 5000) плата будет составлять 10% и т. Д. Я написал следующий код, но мой вывод (эхо) неверен. Без exit;
он просто продолжает цикл. Что не так в моем коде? У кого-нибудь есть предложение. Я PHP-новичок BTW, поэтому любая помощь будет оценена!
<?
### Sum ###
$som = 3500; // example sum 3500 (2500 first part 15%/1000 second part 10%)
/* Output should be with 3500 :
15% of 2500 = 375 + 10% of 1000 = 100 (part above 2500) TOTAL of 475.
My output is 525??? :s */
### 15% first 2500 ###
if ($som < 2500); {
$uitkomst = $som/100 * 15;
echo $uitkomst;
exit; }
### 10% between 2500 - 5000 ###
if ($som >2500 && $som < 5000); {
$iv1 = 2500/100 * 15;
$ts = $som - 2500;
$iv2 = $ts/100 * 10;
$iv1 + $iv2 = $uitkomst;
echo $uitkomst;
exit; }
### 5% between 5000 - 10.000 ###
if ($som >5000 && $som <10000); {
$iv1 = 2500/100 * 15;
$iv2 = 2500/100 * 10;
$ts = $som - 5000;
$iv3 = $ts/100 * 5;
$iv1 + $iv2 + $iv3 = $uitkomst;
echo $uitkomst;
exit; }
### 1% between 10.000 and 200.000 ###
if ($som >10000 && $som <200000); {
$iv1 = 2500/100 * 15;
$iv2 = 2500/100 * 10;
$iv3 = 5000/100 * 5;
$ts = $som - 10000;
$iv4 = $ts/100 * 1;
$iv1 + $iv2 + $iv3 + $iv4 = $uitkomst;
echo $uitkomst;
exit; }
### 0.5% over 200.000 ###
if ($som >200000); {
$iv1 = 2500/100 * 15;
$iv2 = 2500/100 * 10;
$iv3 = 5000/100 * 5;
$iv4 = 190000/100 * 1;
$ts = $som - 200000;
$iv5 = $ts/100 * 0.5;
$iv1 + $iv2 + $iv3 + $iv4 + $iv5 = $uitkomst;
echo $uitkomst;
exit; }
?>
Вы говорите, что ваш скрипт продолжает работать навсегда без выхода? Можете ли вы разместить свою конструкцию цикла, пожалуйста? – Kyle
Ваш запрос $ uitkomst обратный.Левому операнду присваивается значение выражения справа. – lwitzel
Это выглядит ужасно и сложно поддерживать, вы должны иметь ассоциативный массив, связывающий суммы с процентами, и использовать цикл while, вычитая суммы, пока не достигнете '0'. Теперь вы много повторяетесь, и изменение процента или суммы потребует много изменений кода. – jeroen