PHP에서 가장 가까운 10으로 숫자를 반올림하려면 어떻게해야합니까?
내가 가지고 있다고 말하면 23
어떤 코드를 사용하여 반올림 30
합니까?
답변
floor()
내려갑니다.
ceil()
올라갈 것입니다.
round()
기본적으로 가장 가까운 곳으로 이동합니다.
10으로 나누고 셀을 수행 한 다음 10을 곱하여 유효 숫자를 줄입니다.
$number = ceil($input / 10) * 10;
편집 : 나는 오랫동안 이렇게 해왔지만 TallGreenTree의 대답은 더 깨끗합니다.
답변
round($number, -1);
이것은 $ number를 가장 가까운 10으로 반올림합니다. 반올림 모드를 변경하기 위해 필요한 경우 세 번째 변수를 전달할 수도 있습니다.
여기에 더 많은 정보 : http://php.net/manual/en/function.round.php
답변
실제로 가장 가까운 변수로 반올림 할 수있는 함수를 찾고 있었는데이 페이지가 계속 검색되었습니다. 그래서 마침내 직접 함수를 작성하게되었을 때 다른 사람들이 찾을 수 있도록 여기에 게시 할 것이라고 생각했습니다.
함수는 가장 가까운 변수로 반올림됩니다.
function roundToTheNearestAnything($value, $roundTo)
{
$mod = $value%$roundTo;
return $value+($mod<($roundTo/2)?-$mod:$roundTo-$mod);
}
이 코드 :
echo roundToTheNearestAnything(1234, 10).'<br>';
echo roundToTheNearestAnything(1234, 5).'<br>';
echo roundToTheNearestAnything(1234, 15).'<br>';
echo roundToTheNearestAnything(1234, 167).'<br>';
다음을 출력합니다.
1230
1235
1230
1169
답변
이 질문에는 많은 답변이 있으며 아마도 모두가 당신이 찾고있는 답을 줄 것입니다. 그러나 @TallGreenTree가 언급했듯이 이에 대한 기능이 있습니다.
그러나 @TallGreenTree의 대답의 문제는 반올림하지 않고 가장 가까운 10으로 반올림한다는 것입니다.이 문제를 해결하려면 반올림하기 위해 +5
숫자를 더하십시오. 반올림하려면 -5
.
따라서 코드에서 :
round($num + 5, -1);
round mode
반올림에는를 사용할 수 없습니다 . 왜냐하면 정수가 아닌 분수 만 반올림하기 때문입니다.
가장 가까운 값으로 반올림 100
하려면 사용하십시오 +50
.
답변
div를 10으로 한 다음 ceil을 사용하고 10으로 mult
답변
시험
round(23, -1);
답변
라운드를 통해 “속임수”를 사용할 수 있습니다.
$rounded = round($roundee / 10) * 10;
부동 소수점 나누기를 피할 수도 있습니다.
function roundToTen($roundee)
{
$r = $roundee % 10;
return ($r <= 5) : $roundee - $r : $roundee + (10 - $r);
}
편집 : round
이제 “음수”정밀도를 지원 하는 것을 몰랐습니다 (사이트에 잘 문서화되어 있지 않음) . 따라서 더 쉽게 사용할 수 있습니다.
$round = round($roundee, -1);
다시 편집 : 항상 반올림하려면 시도 할 수 있습니다.
function roundUpToTen($roundee)
{
$r = $roundee % 10;
if ($r == 0)
return $roundee;
return $roundee + 10 - $r;
}