반응형
반응형
해당 글의 목적은 주요 숫자 조작함수를 이해하고 예제를 통한 이해를 돕기 위해 작성한 글입니다. 해당 글에서는 모든 함수에 대해서는 포함하고 있지 않으며 자주 사용되는 함수 위주로 작성하였습니다.
(상시 업데이트 예정입니다)
1) 숫자 조작함수 요약
함수 | 함수 설명 | 사용 예시 | 결과값 |
Math.random() | 해당 함수는 0.0이상 1.0미만의 난수를 반환합니다. | Math.random * 101 | (double) 52 |
Math.pow(n, m) | 해당 함수는 n의 m제곱근 값을 반환합니다. | Math.pow(11, 2) | (double) 121.0 |
Math.sqrt(n) | 해당 함수는 n의 루트값을 반환합니다. | Math.sqrt(121) | (dobule) 11.0 |
Math.abs(n) | 해당 함수는 n의 부호(+, -)를 제외한 값을 반환합니다. | Math.abs(-10) | (double) 10 |
Math.ceil(n) | 해당 함수는 n이 소수점일 경우 값을 올림하여 반환합니다. | Math.ceil(3.54) | (double) 4.0 |
Math.round(n) | 해당 함수는 n의 소수점일 경우 값을 반올림하여 반환합니다 | Math.round(3.54) | (double) 4.0 |
Math.floor(n) | 해당 함수는 n의 소수점일 경우 값을 내림하여 반환합니다. | Math.floor(3.54) | (double) 3.0 |
Math.max(n, m) | 해당 함수는 n과 m을 비교하여 최대값을 반환합니다. | Math.max(1, 10) | (int) 10 |
Math.min(n, m) | 해당 함수는 n과 m을 비교하여 최소값을 반환합니다. | Math.min(1, 10) | (int) 1 |
Math.subtractExact(n, m) | 해당 함수는 n에서 m을 뺀 값을 반환합니다. | Math.subtractExact(1, 10) | (int) -9 |
Math.multiplyExact(n, m) | 해당 함수는 n과 m을 곱한 값을 반환합니다 | Math.multiplyExact(1, 10) | (int) 10 |
Math.floorDiv(n, m) | 해당 함수는 n과 m을 나눈 값을 반환합니다. | Math.floorDiv(25, 5) | (int) 5 |
Integer.toString(n, m) | 해당 함수는 n의 10진수의 값을 m 진법으로 반환합니다. | Integer.toString(10, 2) | (String) 1010 |
Integer.parseInt(n) | 해당 함수는 문자열을 숫자로 변환해주며, 부호(+, -)를 포함하여서 반환합니다. | Integer.parseInt("-1234") | (int) -1234 |
Integer.parseInt(n, m) | 해당 함수는 n의 n진법의 값을 m의 진법에 따라 10진수로 반환합니다. | Integer.toString(”1010”, 2) | (String) 10 |
2) 숫자 조작함수 상세
1. [Math.random] 난수를 기반으로 랜덤 한 숫자를 만드는 함수
💡 해당 함수는 0.0 이상 1.0 미만의 랜덤 한 함수를 난수를 반환합니다.
/**
* random() 함수 API
*
* @return result {double} : 랜덤 한 실수 값
*/
public static double random() {
return Math.RandomNumberGeneratorHolder.randomNumberGenerator.nextDouble();
}
// 0 ~ 100 : 랜덤 함수
int random0to100 = (int) (Math.random() * 101);
// 0 ~ 1000 : 랜덤 함수
int random0to1000 = (int) (Math.random() * 1001);
// 10 ~ 100 : 랜덤 함수
int random10to100 = (int) (Math.random() * 101) + 10;
log.debug("0 ~ 100 : " + random0to100 + " 0 ~ 1000 : " + random0to1000 + " 10 ~ 100 : " + random10to100);
2. [Math.pow] n의 m 제곱근 만드는 함수
💡 해당 함수는 n의 m 제곱근을 반환해주는 함수입니다.
/**
* pow() 함수 API
*
* @param a {double} : 실수 값
* @param b {double} : 실수의 n 제곱
* @return result {double} : 실수의 제곱 값
*/
public static double pow(double a, double b) {
return StrictMath.pow(a, b); // default impl. delegates to StrictMath
}
double pow2 = Math.pow(11, 2); // 121.0
double pow3 = Math.pow(11, 3); // 1331.0
3. [Math.sqrt] 루트 값이 존재하는지 여부를 판단하며 루트값을 반환하는 함수
💡 해당 함수는 n의 루트값을 반환해주는 함수입니다.
/**
* sqrt() 함수 API
*
* @param a {double} : 제곱근 값
* @return result {double} : 루트값
*/
public static double sqrt(double a) {
return StrictMath.sqrt(a);
}
double sqrt5 = Math.sqrt(25); // 5.0
double sqrt11 = Math.sqrt(121); // 11.0
// [참고] 루트값이 존재하는지 여부 판단.int rootNum = 25;
int sqrtVal = 121;
int root = (int) Math.sqrt(n);
if (sqrtVal == Math.pow(root, 2)) {
log.debug("루트값이 맞습니다.");
}
4. [Math.abs] 부호(+, -)를 제거한 값만 반환하는 함수
💡 해당 함수는 n의 부호(+, -)를 제외한 값을 반환합니다.
/**
* abs() 함수 API
*
* @param a {int, double, long, float} : 값
* @return result {int, double, long, float} : 부호를 제거한 실수
*/
public static int abs(int a) {
return (a < 0) ? -a : a;
}
double num1 = +3.145348;
double num2 = -3.145348;
double abs1 = Math.abs(num1); // 3.145348
double abs2 = Math.abs(num2); // 3.145348
5. [Math.floor] 숫자가 소수점 일 때 숫자를 "내림"하는 함수
💡해당 함수는 n의 소수점일 경우 값을 내림하여 반환합니다.
💡+ 인 경우에는 정수 값만 반환합니다. ex) 5.95 ⇒ 5
💡 - 인 경우에는 기존의 값에 -1을 더합니다 ex) -5.95 ⇒ -6
/**
* floor() 함수 API
*
* @param a {double} : 내림을 수행 할 실수
* @return result {double} : 내림을 수행할 실수
*/
public static double floor(double a) {
return StrictMath.floor(a); // default impl. delegates to StrictMath
}
double num1 = 5.95;
double num2 = 5.05;
double num3 = 5;
double num4 = -5.05;
double num5 = -5.99;
double floor1 = Math.floor(num1); // 5
double floor2 = Math.floor(num2); // 5
double floor3 = Math.floor(num3); // 5
double floor4 = Math.floor(num4); // ⭐️⭐️⭐️⭐️ -6
double floor5 = Math.floor(num5); // ⭐️⭐️⭐️⭐️ -6
6. [Math.ceil] 숫자가 소수점 일 때 숫자를 "올림" 하는 함수
💡 해당 함수는 n이 소수점일 경우 값을 올림 하여 반환합니다.
💡 +인 경우는 정수만 반환한다. ex) 5.95 ⇒ 5
💡 -인 경우는 그 자체(정수)를 반환 한다. ex) -5.95 ⇒ -5
/**
* ceil() 함수 API
*
* @param a {double} : 올림을 수행 할 실수
* @return result {double} : 올림 수행 후 값
*/
public static double ceil(double a) {
return StrictMath.ceil(a); // default impl. delegates to StrictMath
}
double num1 = 0.95;
double num2 = 4;
double num3 = 7.004;
double ceil1 = Math.ceil(num1); // 1.0
double ceil2 = Math.ceil(num2); // 4.0
double ceil3 = Math.ceil(num3); // 8.0
double num4 = -0.95;
double num5 = -4;
double num6 = -7.004;
// 음수일 경우 소수점을 버린다 ⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️
double ceil4 = Math.ceil(num4); // -0.0
double ceil5 = Math.ceil(num5); // -4.0
double ceil6 = Math.ceil(num6); // -7.0
7. [Math.round] 숫자가 소수점 일때 "반올림"을 하는 함수
💡 해당 함수는 n의 소수점일 경우 값을 반올림하여 반환합니다
💡 +인 경우에는 반올림을 한다 ex) 5.95 ⇒ 6
💡 -인 경우에는 반올림을 한다 ex) -5.95 ⇒ -6
/**
* round() 함수 API
*
* @param a {float, double} : 반올림을 수행 할 실수
* @return result {int, long} : 반올림을 수행 후 값
*/
public static int round(float a) {
...
}
double num1 = 0.9;
double num2 = 5.95;
double num3 = 5.5;
double num4 = 5.05;
double num5 = -5.05;
double num6 = -5.5;
double num7 = -5.95;
double round1 = Math.round(num1); // 1.0
double round2 = Math.round(num2); // 6.0
double round3 = Math.round(num3); // 6.0
double round4 = Math.round(num4); // ⭐️⭐️⭐️⭐️ 5.0
double round5 = Math.round(num5); // ⭐️⭐️⭐️⭐️ -5.0
double round6 = Math.round(num6); // ⭐️⭐️⭐️⭐️ -5.0
double round7 = Math.round(num7); // ⭐️⭐️⭐️⭐️ -6.0
8. [Math.min] 숫자 간의 최소값을 반환하는 함수
💡해당 함수는 n과 m을 비교하여 최소값을 반환합니다.
/**
* min() 함수 API
*
* @param a {int, long, flaot, double} 비교군 1
* @param b {int, long, flaot, double} 비교군 2
* @return result {int, long, flaot, double} 비교 후 최소값
*/
public static int min(int a, int b) {
return (a <= b) ? a : b;
}
int x = 32;
int y = 19;
int z = 12;
// 두개의 숫자간의 비교만 가능하다. (return int)
int min1 = Math.min(x, y); // 12
int min2 = Math.min(y, z); // 19
int min3 = Math.min(x, z); // 19
9. [Math.max] 숫자 간의 최대값을 반환하는 함수
💡 해당 함수는 n과 m을 비교하여 최대값을 반환합니다.
/**
* max() 함수 API
*
* @param a {int, long, float, double} 비교군 1
* @param b {int, long, float, double} 비교군 2
* @return result {int, long, float, double} 비교 후 최대값
*/
public static int max(int a, int b) {
return (a >= b) ? a : b;
}
int x = 32;
int y = 19;
int z = 12;
// 두개의 숫자간의 비교만 가능하다. (return int)
int max1 = Math.max(x, y); // 32
int max2 = Math.max(y, z); // 19
int max3 = Math.max(x, z); // 32
10. [Math.subtractExact] 숫자 간의 뺄셈을 하는 함수
💡 Math.subtractExact
- 주어진 두 개의 정수 값을 뺄셈하여 결과를 반환하는 함수입니다.
- 이 함수는 뺄셈 연산의 결과가 정수 범위를 초과하는 경우 ArithmeticException을 발생시킵니다.
/**
* subtractExact() 함수 API
*
* @param x {int, long} 피연산자 1
* @param y {int, long} 피연산자 2
* @return result {int, long} 뺄셈 결과
* @throws ArithmeticException 뺄셈 결과가 정수 범위를 초과하는 경우
*/
public static int subtractExact(int x, int y) {
return x - y;
}
int result = Math.subtractExact(10, 5); // 결과: 5
11. [Math.multiplyExact] 숫자 간의 곱셈을 하는 함수
💡 Math.multiplyExact
- 주어진 두 개의 정수 값을 곱셈하여 결과를 반환하는 함수입니다.
- 이 함수는 곱셈 연산의 결과가 정수 범위를 초과하는 경우 ArithmeticException을 발생시킵니다.
/**
* multiplyExact() 함수 API
*
* @param x {int, long} 피연산자 1
* @param y {int, long} 피연산자 2
* @return result {int, long} 곱셈 결과
* @throws ArithmeticException 곱셈 결과가 정수 범위를 초과하는 경우
*/
public static int multiplyExact(int x, int y) {
return x * y;
}
int result = Math.multiplyExact(3, 4); // 결과: 12
12. [Math.floorDiv] 숫자간의 나눗셈을 하는 함수
💡 Math.floorDiv
- 주어진 두 개의 정수 값을 나눈 몫을 반환하는 함수입니다.
- 이 함수는 나누는 수와 나뉘는 수의 부호를 유지하고, 소수점 이하를 버리고 몫을 계산합니다.
/**
* floorDiv() 함수 API
*
* @param x {int, long} 피연산자 1
* @param y {int, long} 피연산자 2
* @return result {int, long} 몫
*/
public static int floorDiv(int x, int y) {
return x / y;
}
int result = Math.floorDiv(10, 3); // 결과: 3
13. [Integer.toString] 숫자(10진법)를 n진법으로 변환하는 함수
💡 숫자를 n진법으로 변환하는 함수입니다.
/**
* toString() 함수 API
*
* @param i {int} : 전환 하려는 10진법 값
* @param radix {int} : 전환 하려는 n진법 값
* @return result {String} : 변환 값
*/
public static String toString(int i, int radix) {
...
return toStringUTF16(i, radix);
}
// 10 진수 값.
int num = 10;
// 10진수 -> 2진수
String digit2_1 = Integer.toString(num, 2); // 1010
String digit2_2 = Integer.toBinaryString(num); // 1010
// 10진수 -> 8진수
String digit8_1 = Integer.toString(num, 8); // 12
String digit8_2 = Integer.toOctalString(num); // 12
// 10진수 -> 16진수
String digit10_1 = Integer.toString(num, 16); // "a"
String digit10_2 = Integer.toHexString(num); // "a"
[ 더 알아보기 - 2023.01.31 추가 ]
💡 Integer.parseInt(n)는 또한 해당 함수는 문자열을 숫자로 변환해주며 부호(+, -)를 포함하여서 반환합니다
💡 Math.abs(n)는 부호(+, -)를 제외한 정수만 추출한다는 점이 비교대상이 됩니다.
String s1 = "-1234";
int answer = Integer.parseInt(s1); // -1234
String s2 = "1234";
int answer = Integer.parseInt(s2); // 1234
14. [Integer.parseInt] n진법을 숫자 (10진법)으로 변환하는 함수
💡 n진법으로 구성되어 있는 것을 숫자로 변환하는 함수입니다.
/**
*
* parseInt() 함수 API
* @param s {String} : n진법 값
* @param radix {int} : n 진법
* @return result {int} : 변경한
* @throws NumberFormatException
*/
public static int parseInt(String s, int radix)
throws NumberFormatException
{
...
}
String bin = "1010"; // 2진법
String oct = "12"; // 8진법
String hex = "a"; // 16진법
int digit10_1 = Integer.parseInt(bin, 2); // 10
int digit10_2 = Integer.parseInt(oct, 8); // 10
int digit10_3 = Integer.parseInt(hex, 16); // 10
오늘도 감사합니다. 😀
반응형
'Java > 공통 모듈' 카테고리의 다른 글
[Java] Stream API -3 이해하기: Stream 최종연산 (0) | 2023.02.14 |
---|---|
[Java] Stream API -2 이해하기: Stream 중간연산 (4) | 2023.02.08 |
[Java] Stream API -1 이해하기: 용어 및 Stream 생성 (4) | 2023.02.05 |
[Java] 배열(Array) 조작 함수 이해하기-1: 기본 구성, Arrays 함수 (0) | 2023.01.30 |
[Java] 문자열(String) 조작 함수 이해하기 : 조작 및 비교 함수 (2) | 2023.01.21 |