숫자를 가장 가까운 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;
We can also avoid going through floating point division with
function roundToTen($roundee)
{
$r = $roundee % 10;
return ($r <= 5) : $roundee - $r : $roundee + (10 - $r);
}
Edit: I didn't know (and it's not well documented on the site) that round
now supports "negative" precision, so you can more easily use
$round = round($roundee, -1);
Edit again: If you always want to round up, you can try
function roundUpToTen($roundee)
{
$r = $roundee % 10;
if ($r == 0)
return $roundee;
return $roundee + 10 - $r;
}
$value = 23;
$rounded_value = $value - ($value % 10 - 10);
//$rounded_value is now 30
Try this:
ceil($roundee / 10) * 10;
Just round down to the nearest 10, and then add 10.
round($num, -1) + 10
My first impulse was to google for "php math" and I discovered that there's a core math library function called "round()" that likely is what you want.
For people who want to do it with raw SQL, without using php, java, python etc. SET SQL_SAFE_UPDATES = 0; UPDATE db.table SET value=ceil(value/10)*10 where value not like '%0';
I wanted to round up to the next number in the largest digits place (is there a name for that?), so I made the following function (in php):
//Get the max value to use in a graph scale axis,
//given the max value in the graph
function getMaxScale($maxVal) {
$maxInt = ceil($maxVal);
$numDigits = strlen((string)$maxInt)-1; //this makes 2150->3000 instead of 10000
$dividend = pow(10,$numDigits);
$maxScale= ceil($maxInt/ $dividend) * $dividend;
return $maxScale;
}
Hey i modify Kenny answer and custom it not always round function now it can be ceil and floor function
function roundToTheNearestAnything($value, $roundTo,$type='round')
{
$mod = $value%$roundTo;
if($type=='round'){
return $value+($mod<($roundTo/2)?-$mod:$roundTo-$mod);
}elseif($type=='floor'){
return $value+($mod<($roundTo/2)?-$mod:-$mod);
}elseif($type=='ceil'){
return $value+($mod<($roundTo/2)?$roundTo-$mod:$roundTo-$mod);
}
}
echo roundToTheNearestAnything(1872,25,'floor'); // 1850<br>
echo roundToTheNearestAnything(1872,25,'ceil'); // 1875<br>
echo roundToTheNearestAnything(1872,25,'round'); // 1875
This can be easily accomplished using PHP 'fmod' function. The code below is specific to 10 but you can change it to any number.
$num=97;
$r=fmod($num,10);
$r=10-$r;
$r=$num+$r;
return $r;
OUTPUT: 100
to nearest 10 , should be as below
$number = ceil($input * 0.1)/0.1 ;
Try this......pass in the number to be rounded off and it will round off to the nearest tenth.hope it helps....
round($num, 1);
참고URL : https://stackoverflow.com/questions/1619265/how-to-round-up-a-number-to-nearest-10
'programing' 카테고리의 다른 글
문자열이 html인지 확인 (0) | 2020.09.17 |
---|---|
UIStatusBarStyle이 Swift에서 작동하지 않습니다. (0) | 2020.09.17 |
Codeigniter-지정된 입력 파일 없음 (0) | 2020.09.17 |
알파벳 문자 배열 생성 (0) | 2020.09.17 |
Xcode 프로젝트에 시뮬레이터 목록이 표시되지 않음 (0) | 2020.09.17 |