Вот проблема, когда он сталкивается с такими фракциями, как: 300/10 вместо того, чтобы давать результат «30» , следующий код дает мне : 1/0Исправление для преобразования фракции короткий PHP-фрагмент, выпуск с вычислением, преобразование фракции в более читаемый формат
$tokens = explode('/', $value);
while ($tokens[0] % 10 == 0) {
$tokens[0] = $tokens[0]/10;
$tokens[1] = $tokens[1]/10;
}
if ($tokens[1] == 1) {
return $tokens[0].' s';
} else {
return '1/'.floor(1/($tokens[0]/$tokens[1])).' s';
// return $tokens[0].'/'.$tokens[1].' s';
}
благодарит
В то же время, когда итерация '$ tokens [0] = 30 (300/10)', '$ tokens [1] = 1 (10/10)', вторая - итерация '$ tokens [0 ] = 3 (30/10) ',' $ tokens [1] = 0,1 (1/10) ',' else' работает. –
, потому что вы уменьшили $ tokens [1] до 0,1 – Hammerstein
U_mulder и Hammer благодарим за комментарии, но, пожалуйста, укажите, как вы предлагаете модифицировать мой код, чтобы лучше всего покрыть такие случаи и сделать его ответом на вопрос, чтобы я мог щелкнуть ', чтобы принять ваш ответ как лучшее решение. спасибо – htfree