[ 자바스크립트 ] 랜덤으로 실수를 가져오기 🕔 2016. 10. 26. 02:51
Use the Google Translate, if you want to read this page in your language.
But its translation is probably inaccurate.
☞ Go to the Google Translate.
[ Javascript ] Get real number at random.
random() 함수를 이용해서,
원하는 범위 안에서, 실수(real number) 하나를 랜덤으로 가져다주는 함수를 만들어보았다.
Using "Math.random()",
I wrote a function that returns one real number at random within the desired range.
<script type="text/javascript"> function getRandomNumber (){ var decimal; var random = Math.random(); var isFirstNumber = function ( number ){ return ( "" + random ).indexOf( number ) == 0; }; switch ( arguments.length ){ case 0 : if ( isFirstNumber( 0.001 ) ){ decimal = 0; } else { var decimalDigits = ( "" + random ).replace( "0.", "" ).length; var exponential = Math.floor( Math.random() * decimalDigits ); decimal = ( exponential < 1 ) ? random : random * Math.pow( 10, exponential ); } break; case 1 : if ( isFirstNumber( 0.001 ) ){ decimal = 0; } else { var max = Number( arguments[ 0 ] ) || parseFloat( arguments[ 0 ] ); if ( isNaN( max ) || max === 0 || isFirstNumber( 0.999 ) ){ decimal = max; } else { decimal = random * max; } } break; case 2 : var temp, min, max; temp = ( arguments[0] < arguments[1] ) ? arguments[0] : arguments[1]; min = Number( temp ) || parseFloat( temp ); temp = ( arguments[0] < arguments[1] ) ? arguments[1] : arguments[0]; max = Number( temp ) || parseFloat( temp ); if ( isNaN( min ) || isNaN( max ) || min == max ){ decimal = ( min == max ) ? max : NaN; } else { if ( isFirstNumber( 0.001 ) ){ decimal = min; } else if ( isFirstNumber( 0.999 ) ){ decimal = max; } else { decimal = ( random * (max - min) ) + min; } } break; } if ( isNaN( decimal ) ){ return { real : NaN, integer : NaN, positive : NaN, negative : NaN }; } if ( decimal == 0 ){ return { real : 0, integer : 0, positive : 0, negative : 0 }; } return { real : decimal, integer : decimal - ( decimal % 1 ), positive : ( decimal < 0 ) ? -decimal : decimal, negative : ( decimal > 0 ) ? -decimal : decimal }; } </script>
아래는, 한정된 범위 없이 getRandomNumber() 함수를 실행했을 경우이다.
The following is a case of working the getRandomNumber() function without limited range.
<table> <tbody> <tr> <td>실수 ( real number ) </td> <td id="demo1"> </td> </tr> <tr> <td>정수 ( integer ) </td> <td id="demo2"> </td> </tr> <tr> <td>양수 ( positive number ) </td> <td id="demo3"> </td> </tr> <tr> <td>음수 ( negative number ) </td> <td id="demo4"> </td> </tr> </tbody> </table> <button onclick="testing()"> Click me </button> <script type="text/javascript"> function testing (){ var random = getRandomNumber(); var a = random.real; var b = random.integer; var c = random.positive; var d = random.negative; demo1.innerHTML = a; demo2.innerHTML = b; demo3.innerHTML = c; demo4.innerHTML = d; } </script>
실수 ( real number ) | |
정수 ( integer ) | |
양수 ( positive number ) | |
음수 ( negative number ) |
아래의 두 예문에서는, 0부터 14.09 사이의 실수(real number)를 가져온다.
최소값인 0과 최대값인 14.09도 나오기는 한다. 아주 가~~~끔...
The following two examples will return one real number between 0 and 14.09.
Very, very rarely...
it will return the minimum 0 or maximum 14.09.
<table> <tbody> <tr> <td>real number </td> <td id="demo1"> </td> </tr> <tr> <td>integer </td> <td id="demo2"> </td> </tr> <tr> <td>positive number </td> <td id="demo3"> </td> </tr> <tr> <td>negative number </td> <td id="demo4"> </td> </tr> </tbody> </table> <button onclick="testing()"> Click me </button> <script type="text/javascript"> function testing (){ var random = getRandomNumber( 14.09 ); var a = random.real; var b = random.integer; var c = random.positive; var d = random.negative; demo1.innerHTML = a; demo2.innerHTML = b; demo3.innerHTML = c; demo4.innerHTML = d; } </script>
real number | |
integer | |
positive number | |
negative number |
<table> <tbody> <tr> <td>real number </td> <td id="demo1"> </td> </tr> <tr> <td>integer </td> <td id="demo2"> </td> </tr> <tr> <td>positive number </td> <td id="demo3"> </td> </tr> <tr> <td>negative number </td> <td id="demo4"> </td> </tr> </tbody> </table> <button onclick="testing()"> Click me </button> <script type="text/javascript"> function testing (){ var random = getRandomNumber( " 14.09 " ); var a = random.real; var b = random.integer; var c = random.positive; var d = random.negative; demo1.innerHTML = a; demo2.innerHTML = b; demo3.innerHTML = c; demo4.innerHTML = d; } </script>
real number | |
integer | |
positive number | |
negative number |
아래 예문에서는, -14.09부터 0 사이의 실수(real number)를 가져온다.
The following returns one real number between -14.09 and 0.
<table> <tbody> <tr> <td>real number </td> <td id="demo1"> </td> </tr> <tr> <td>integer </td> <td id="demo2"> </td> </tr> <tr> <td>positive number </td> <td id="demo3"> </td> </tr> <tr> <td>negative number </td> <td id="demo4"> </td> </tr> </tbody> </table> <button onclick="testing()"> Click me </button> <script type="text/javascript"> function testing (){ var random = getRandomNumber( -14.09 ); var a = random.real; var b = random.integer; var c = random.positive; var d = random.negative; demo1.innerHTML = a; demo2.innerHTML = b; demo3.innerHTML = c; demo4.innerHTML = d; } </script>
real number | |
integer | |
positive number | |
negative number |
아래의 두 예문에서는, -3부터 5 사이의 실수(real number)를 가져온다.
The following two examples will return one real number between -3 and 5.
<table> <tbody> <tr> <td>real number </td> <td id="demo1"> </td> </tr> <tr> <td>integer </td> <td id="demo2"> </td> </tr> <tr> <td>positive number </td> <td id="demo3"> </td> </tr> <tr> <td>negative number </td> <td id="demo4"> </td> </tr> </tbody> </table> <button onclick="testing()"> Click me </button> <script type="text/javascript"> function testing (){ var random = getRandomNumber( -3, 5 ); var a = random.real; var b = random.integer; var c = random.positive; var d = random.negative; demo1.innerHTML = a; demo2.innerHTML = b; demo3.innerHTML = c; demo4.innerHTML = d; } </script>
real number | |
integer | |
positive number | |
negative number |
<table> <tbody> <tr> <td>real number </td> <td id="demo1"> </td> </tr> <tr> <td>integer </td> <td id="demo2"> </td> </tr> <tr> <td>positive number </td> <td id="demo3"> </td> </tr> <tr> <td>negative number </td> <td id="demo4"> </td> </tr> </tbody> </table> <button onclick="testing()"> Click me </button> <script type="text/javascript"> function testing (){ var random = getRandomNumber( 5, -3 ); var a = random.real; var b = random.integer; var c = random.positive; var d = random.negative; demo1.innerHTML = a; demo2.innerHTML = b; demo3.innerHTML = c; demo4.innerHTML = d; } </script>
real number | |
integer | |
positive number | |
negative number |
아래의 두 예문에서는, 결과가 모두 NaN으로 나올 것이다.
The following two examples will return NaN.
<table> <tbody> <tr> <td>real number </td> <td id="demo1"> </td> </tr> <tr> <td>integer </td> <td id="demo2"> </td> </tr> <tr> <td>positive number </td> <td id="demo3"> </td> </tr> <tr> <td>negative number </td> <td id="demo4"> </td> </tr> </tbody> </table> <button onclick="testing()"> Click me </button> <script type="text/javascript"> function testing (){ var random = getRandomNumber( undefined ); var a = random.real; var b = random.integer; var c = random.positive; var d = random.negative; demo1.innerHTML = a; demo2.innerHTML = b; demo3.innerHTML = c; demo4.innerHTML = d; } </script>
real number | |
integer | |
positive number | |
negative number |
<table> <tbody> <tr> <td>real number </td> <td id="demo1"> </td> </tr> <tr> <td>integer </td> <td id="demo2"> </td> </tr> <tr> <td>positive number </td> <td id="demo3"> </td> </tr> <tr> <td>negative number </td> <td id="demo4"> </td> </tr> </tbody> </table> <button onclick="testing()"> Click me </button> <script type="text/javascript"> function testing (){ var random = getRandomNumber( " abc 12 " ); var a = random.real; var b = random.integer; var c = random.positive; var d = random.negative; demo1.innerHTML = a; demo2.innerHTML = b; demo3.innerHTML = c; demo4.innerHTML = d; } </script>
real number | |
integer | |
positive number | |
negative number |
이 내용이 도움이 되셨다면, 아래의 하트 버튼을 눌러주세요. *^^*
If this article is helpful to you, please press the heart button. *^^*
'JAVASCRIPT > Number & Math' 카테고리의 다른 글
[ 자바스크립트 ] 소수와 합성수 (0) | 2016.11.08 |
---|---|
[ 자바스크립트 ] Number.isInteger() (0) | 2016.10.26 |
[ 자바스크립트 ] Math.trunc() (0) | 2016.10.22 |
[ 자바스크립트 ] Math.round() (0) | 2016.03.17 |
[ 자바스크립트 ] Math.ceil() (1) | 2016.03.17 |