php 에는 float 난수를 발생시키는 함수가 따로 없다.
그래서 int 난수 함수인 rand() 함수를 이용해 float로 변환해야 한다.
다음은 float 변수형의 최소, 최댓값을 인수로 받아 float 난수를 반환하는 함수이다.
자주 사용할것 같아 만들어 보았다.
function randOnFloat($min, $max) {
//최소,최대값중에 소수점 자리수가 더 큰쪽을 선택
$radix_min = radix($min);
$radix_max = radix($max);
$radix = $radix_min[front] > $radix_max[front] ? $radix_min : $radix_max;
//입력된 float값을 int값으로 변환후 int난수를 발생시키고 다시 float로 변환한다
return rand(floor($min * $radix[front]), floor($max * $radix[front])) * $radix[back];
}
private function radixExp($num) {
//소수점 자리수
$value = explode(".", $num);
if (count($value) > 1) {
return strlen($value[1]);
}
return 0;
}
private function radix($num) {
$exp = radixExp($num);
//int 변환(front) 및 float 변환(back)용 배수
if ($exp > 0) {
return Array(front=>pow(10, $exp), back=>pow(10, -$exp));
}
return Array(front=>1, back=>1);
}
도움이 되셨다면~ 정성으로 빚은 저희 앱! 많은 이용 바래요:)
https://meorimal.com/index.html?tab=spaceship
https://meorimal.com/subway.html
사업자 정보 표시
주식회사 머리말 | 고영진 | 서울특별시 송파구 중대로 135 서관 10층 (가락동, 아이티벤처타워) | 사업자 등록번호 : 524-88-00727 | TEL : 010-9990-3674 | Mail : gyjmeba@hanmail.net | 통신판매신고번호 : 2017-서울강남-03941호 | 사이버몰의 이용약관 바로가기
'개발 > php, javascript' 카테고리의 다른 글
삼각 분포로 난수 발생시키기 (0) | 2019.10.28 |
---|---|
삼각행렬로 연립방정식 단번에 구하기 (0) | 2019.08.19 |
round()를 5의 배수로도 반올림 해보자 (0) | 2018.11.26 |
php의 json_decode에서 null이 나올경우 살펴봐야 할점 (0) | 2013.11.11 |
javascript 로 애니메이션 움직임 만들기 (0) | 2013.09.02 |