intdiv () не работает должным образом

Я использую эту функцию, но результат не соответствует ожидаемому

function getyearly($monthly, $yearly)
{
if(!empty($monthly) && $monthly!='0' && !empty($yearly) && $yearly!='0')
{
$permonth = intdiv((int)$yearly, 12);
$monthlytoyear = (int)$monthly*12;
$aftersub = $monthlytoyear - (int)$yearly;
$afterdiv = intdiv((int)$aftersub, (int)$yearly);
// $finaly = (int)$afterdiv*100;
return "$ " . $yearly . "/year ($" . round($permonth) . "/month; save ~" . (int)$afterdiv . "%)";
} else {
return '$ '.$yearly.'/yearly';
}
}

Я получаю ноль (0).

0

Решение

intdiv() это неправильный инструмент для этой последней работы.

Результатом деления будет плавание, которое intdiv преобразуется в 0,

Код: (демонстрация)

function getyearly($monthly, $yearly) {
if(!empty($monthly) && !empty($yearly)) {
$permonth=intdiv((int)$yearly, 12);
echo "Single payment will feel like 12-monthly payments of: $permonth (" , $permonth *12 . ")\n";
$monthlytoyear=(int)$monthly*12;
echo "Making monthly payments will actually come to: $monthlytoyear\n";
$aftersub = $monthlytoyear-$yearly;
echo "That is a difference of: $aftersub\n";
$afterdiv = $aftersub / $yearly;
echo "In other words, a savings of: " , $afterdiv , "\n";
$finaly=(int)($afterdiv*100);
return "$ ".$yearly."/year ($".round($permonth)."/month; save ~{$finaly}%)";
} else {
return '$ '.$yearly.'/yearly';
}

}
$monthly='60';
$yearly= '480';

echo getyearly($monthly,$yearly);

Выход:

Single payment will feel like 12-monthly payments of: 40 (480)
Making monthly payments will actually come to: 720
That is a difference of: 240
In other words, a savings of: 0.5
$ 480/year ($40/month; save ~50%)
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector