답변 2개
채택된 답변
+20 포인트
5년 전
변수 a = 250000
범위 a >= 100000 && a <= 300000 {
범위의 시작값 = 100000
측정변수 = 변수에서 범위의시작직전의 값제거 = 250000 - (100000 -1)
범위의 최종값 = 최종값 - 범위의 시작직전의값제거 = 300000 - (100000-1)
비율 = 측정변수 / 범위의최종값 * 100
}
==>
$a = 250000;
$levelstart = 100000;
$levelend = 300000;
if ($a >= $levelstart && $a <= $levelend) {
$realval = $a - ($levelstart - 1);
$realend = $levelend - ($levelstart -1);
$per = $realval / $realend * 100;
echo $per."%";
}
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
�
초초동
5년 전
세상에... 딱 원하던 답입니다 ㅠㅠㅠ
댓글을 작성하려면 로그인이 필요합니다.
5년 전
이미 채택 답변이 있으나 참고로 추가합니다.
</p>
<p>$a = 250000; // 참고로 PHP v7.4부터 25_0000 처럼 구분하기 편하게 표현 가능
$min = 100000;
$max = 300000;</p>
<p>$per = ($a-$min)/($max-$min)*100; // 75</p>
<p> </p>
<p>// 이하 참고 내용</p>
<p> </p>
<p>// 참고 1</p>
<p>if ( $per<=0 ) $per = 0; // 0% 이하 0%로 강제 변경</p>
<p>if ( $per>=100 ) $per = 100; // 100% 이상 100%로 강제 변경</p>
<p>// 초과는 상관없을 것 같지만, 꼭 범위 내의 값이어야 한다면 채택 답변처럼 범위 체크</p>
<p> </p>
<p>// 참고 2</p>
<p>$per = round(($a-$min)/($max-$min)*100, 2); // 75.00</p>
<p>// 또는</p>
<p>$per = sprintf('%0.2f', ($a-$min)/($max-$min)*100, 2); // 75.00</p>
<p> </p>
<p>// 참고 3. 반올림이 싫다면... 300,000 = 100%, 299,999 = 99.99% 처럼. *10000, /100 조정으로 다양하게.</p>
<p>$per = ($a-$min)/($max-$min)*10000;
$per = floor($per)/100;</p>
<p>
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인