Forum Webscript.Ru
Программирование => PHP => Тема начата: strakhov от 17 Января 2008, 15:25:29
-
Округление должно происходить следующим образом:
если вес больше ровного значения (1 1,5 2 2,5....) на сумму до 200 грамм, то округляется в меньшую сторону, если больше – то в большую. Кроме начального значения, которое не может быть менее 0,5(шаг веса 0,5 кг.).
Пример: реальный вес 0,1 => 0,5
реальный вес 0,6 => 0,5
реальный вес 0,7 => 0,5
реальный вес 0,75 => 1
реальный вес 2,2 => 2
реальный вес 2,25 => 2,5 и т.д.
Помогите решить задачу с помощью PHP.
Заранее спасибо.
-
работает во всем диапазоне положительных чисел, вообще еще следовало бы сделать проверку на вводимые данные, но думаю автор сам справится
function kilogramm( $a) // :)
{
if (0.7>=$a) {
$a=0.5;
return $a;
}
elseif ( 1.2>=$a&&$a>0.7) {
$a=1;
return $a;
}
$b = floor( $a);
$c=fmod( $a, $b);
if ($c=<0.2) {
return $b;
}
else if (0.7>=$c && $c>0.2) {
$a=$b+0.5;
return $a;
}
else {
return ++$b;
}
}
-
function you_round($a){
return (int)($a*2+0.5)/2;
}
Так кажется - короче
-
2Altaxar
У вас округление до половины килограмма идет при дробных значения от 0.25 и до 0.75, а нужно, если я правильно понял, округлять до половины при дробных значениях >0.2 и =< 0.7.
Не работает в диапазоне от 0 до 0.25.