[php] 숫자를 가장 가까운 10으로 반올림하는 방법은 무엇입니까?

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

http://php.net/manual/en/function.ceil.php


답변

시험

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;
}