■ Java Number - Math.log() 함수 & Math.log10() 함수



log() 함수는 수학의 자연로그 함수 입니다. 자연로그 함수란 밑이 자연대수인 e 인 로그 함수를 의미 합니다. 

log10() 함수는 밑이 10인 로그 함수를 의미 합니다. 



Syntax

public static double log (double d)

public static double log10 (double d)



Example


1
System.out.println(Math.log(7.38905609893065));
cs


위 코드는 밑이 e 인 7.38905609893065 값을 뽑아 내는 코드 입니다. 

결과는 2.0 이 나옵니다. 



위와 반대 개념으로 exp() 함수가 있습니다. 

e의 2.0 승을 하는 코드가 아래와 같습니다. 


1
System.out.println(Math.exp(2));
cs


위 코드를 실행 시키면 첫번째 예제의 인자 값인 7.38905609893065 가 리턴 됩니다. 




1
System.out.println(Math.log10(10));
cs


위 코드는 밑이 10인 10 값을 가져오는 코드 입니다. 

밑인 10을 생략하면 log10 과 같이 쓸수 있는데요 이 값은 익히 아시는 바와 같이 1 입니다. 

위 코드를 실행 하면 1.0 이 나오는데요. 이는 함수의 return data type 이 double 형이기 때문입니다. 



 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D




블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,



■ Java Number - Math.exp() 함수



exp() 함수는 Euler 의 상수 e (약 2.71828) 값을 입력 받은 인자 값만큼 거듭제곱 하는 함수 입니다. 

즉, 입력 인자 값은 double 형이며 이 인자 값이 e 의 승수를 나타냅니다. 



Syntax

public static double exp (double a)



Example


1
System.out.println(Math.exp(2));
cs


위 코드는 2.71828... 의 2승을 한 값을 리턴 합니다. 

결과 값은 7.38905609893065 입니다. 



1
System.out.println(Math.exp(2.5));
cs


위 코드는 2.71828... 의 2.5 승을 한 값을 리턴 합니다. 

결과 값은 12.182493960703473 입니다. 




 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D




블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,



■ Java Number - Math.max() 함수



max() 함수는 입력받은 두 인자 값 중 큰 값을 리턴하는 함수 입니다. min() 함수와 반대 개념의 함수 입니다. 

인자 값으로는 int, long, double, float 등을 사용 할 수 있습니다. 



Syntax

public static int (int a, int b)

public static long (long a, long b)

public static double (double a, double b)

public static float (float a, float b)


입력 data type 이 int 일 경우 리턴 값은 int, 입력 data type 이 double 일 경우 리턴 값은 double 입니다. 

즉, 입력된 data type 에 따라 return data type 이 결정됩니다. 



Example


1
System.out.println(Math.max(121));
cs


data type 이 int 인 12 와 1 두 값중 큰 값을 구하는 코드입니다. 

인자 값이 int 이므로 return 값도 int 가 됩니다. 

위 코드의 실행 결과 12 가 리턴 됩니다. 



1
System.out.println(Math.max(7.121));
cs


data type 이 double 과 int 로 보이지만 max() 함수의 인자 값은 동일한 data type 을 받습니다. 

즉, 7.12 가 double 형이므로 1도 double 형이라고 생각하시면 됩니다. 

min() 함수를 사용 했다면 결과 값은 1.0 이 될것입니다. 


위 코드이 실행 결과 7.12 가 리턴 됩니다. 



1
System.out.println(Math.max(1004.121004.34));
cs


data type 이 doble 형인 두 값을 비교하고 있습니다. 

실행 결과는 1004.34 가 리턴 됩니다. 



 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D





블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,



  ■ Java Number - Math.min() 함수



min() 함수는 입력받은 두개의 인자 값 중 작은 값을 리턴 합니다. 인자 값으로는 int, float, long, double 등을 사용할 수 있습니다. 



Syntax

public static int(int a, int b)

public static long(long a, long b)

public static double(double a, double b)

public static float(float a, float b)


입력 data type 이 int 면 리턴 값은 int 형으로 리턴 됩니다. 

즉, 입력된 data type 에 따라 return data type 이 결정됩니다. 



Example


1
System.out.println(Math.min(121));
cs


int 형 12 와 1의 비교 입니다. 

둘중 작은 값을 가져 오는 min() 함수를 이용하였으며 return data type 은 int  형입니다. 


실행 결과는 당연히 1이 리턴 됩니다.



1
System.out.println(Math.min(7.121));
cs


인자 값으로 7.12 와 1 이 있습니다. 

보기에는 double 형 vs int 형의 비교라 생각 할 수 있습니다. 

하지만 함수 자체가 입력 값으로 받는 data type 은 동일 형이어야 합니다. 


즉, 위 코드는 double 형 7.12 vs 1.0 의 비교 입니다. 


실행 결과는 double 형으로 리턴 되므로 1.0 이 리턴 됩니다. 



1
System.out.println(Math.min(1004.121004.34));
cs


보기에도 double vs double 입니다. 리턴 값은 당연히 double 형이구요. 

실행 결과는 1004.12 가 리턴 됩니다. 




 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D




블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,




■ Java Number - round() 함수



round() 함수는 리턴되는 data type 에 따라 입력값에 가장 가까운 long 이나 int 값을 반환 합니다. 



Syntax

public static long round(double d)

public static int round(float f)



Sample


Case 1

1
2
double a = 9.8;
System.out.println("Math.round(a) = " + Math.round(a));
cs

9.8 이 가장 가까운 long 값은 10 입니다. 

int 값이 아니라 long 이라고 한 이유는 위 syntax 를 잘 보시면 이해 하실 수 있습니다. 

입력 값이 double 이므로 return data type 을 long 으로 생각 하시면 됩니다. 


위 코드를 실행 하면 아래와 같은 결과값이 나옵니다. 


Math.round(a) = 10


1
int intA = Math.round(a);
cs

만약 위와 같이 위 double a 값을 사용하고 한다면 오류가 발생 합니다. 



double 값을 입력 하여 리턴 타입이 long 인데요. 이 값을 int 로 받으려고 하니 오류가 납니다. 


1
int intA = (int)Math.round(a);
cs

위와 같이 int 형을 형 변환을 해주시면 문제 없이 사용 하실 수 있습니다. 



Case 2

1
2
double d = 15.5;
System.out.println("Math.round(d) = " + Math.round(d));
cs

round() 함수는 rint() 함수와 달리 5 이상을 올림 처리를 합니다. 

따라서 15.5 의 가장 가까운 long 값은 15가 아니라 (rint 함수는 15입니다) 16 이 됩니다.


위 코드 실행 결과는 아래와 같습니다. 


Math.round(d) = 16



Case 3

1
2
float e = 10.6f;
System.out.println("Math.round(e) = " + Math.round(e));
cs

이번에는 인자 값의 data type 이 float 입니다. 

리턴되는 값의 data type 은 int 가 되어야 합니다. 


10.6 의 가장 가까운 int 값은 11 입니다. 

위 코드의 실행 결과는 아래와 같습니다. 


Math.round(e) = 11


1
long longE = Math.round(e);
cs

만약 위와 같은 코드를 작성 했다고 가정 했을때 문제가 없을 까요? 


float 값을 입력 받았으므로 int 값이 리턴 되는데 long 으로 받으려고 합니다. 

이 경우는 문제가 없습니다. long 형이 int 형보다 크기 때문에 어떤 경우라도 문제 없이 처리가 됩니다. 


long ==> 64bit

int ==> 32bit



Case 4

1
2
float f = 15.5f;
System.out.println("Math.round(f) = " + Math.round(f));
cs

15.5의 가장 가까운 int 값은 무엇 일까요? 

5 이상은 올림 처리 하여 16이라는 값을 리턴 합니다. 


코드 결과 값은 아래와 같습니다. 


Math.round(f) = 16




 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D


블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,




 ■ Java Numbers - rint() 함수 



rint() 함수는 인자값에 가장 가까운 정수를 double 형으로 리턴 하는 함수 입니다. 



Syntax

public static double rint(double d)


※인자 값으로 double 을 받습니다. 



Sample


1
2
double a = 9.8;
System.out.println("Math.rint(a) = " + Math.rint(a));
cs

9.8 의 가장 가까운 정수 값은 10입니다. 

위 코드를 실행 하면 아래과 같은 결과가 리턴 됩니다. 

Math.rint(a) = 10.0



1
2
double b = 10.2;
System.out.println("Math.rint(b) = " + Math.rint(b));
cs

10.2 의 가장 가까운 정수 값은 10 입니다. 

위 코드를 실행 하면 아래와 같은 결과가 리턴 됩니다. 

Math.rint(b) = 10.0



1
2
double c = 10.6;
System.out.println("Math.rint(c) = " + Math.rint(c));
cs

10.6 의 가장 가까운 정수 값은 11입니다. 

코드를 실행하면 아래과 같은 결과가 리턴 됩니다. 

Math.rint(c) = 11.0



1
2
double d = 10.5;
System.out.println("Math.rint(d) = " + Math.rint(d));
cs

10.5 의 가장 가까운 정수 값은 뭘까요? 

6 이상을 반올림 하는 것으로 처리 하여 .5 의 경우 내림 처리 합니다. 

코드를 실행하면 아래과 같은 결과가 리턴 됩니다. 

Math.rint(d) = 10.0




 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D



블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,



■ Java Numbers - floor() 함수


floor() 함수는 앞서 언급했던 ceil() 함수와 반대로 입력된 값 인자 값보다 작거나 같은 가장 큰 정수 값을 double 형으로 반환 합니다. 



Syntax

static double floor(double d)

static double floor(float f)



Sample

1
2
3
4
5
6
7
8
double d1 = -10.675;
System.out.println(Math.floor(d1));
        
double d2 = -9.675;
System.out.println(Math.floor(d2));
        
double d3 = 10.675;
System.out.println(Math.floor(d3));
cs



d1 = -10.675

-10.675 보다 작거나 같은 정수 값은 -11 입니다. 

-11을 double 형으로 변환하면 -11.0 입니다. 


d2 = -9.675 

-9.675 보다 작거나 같은 정수 값은 -10 입니다. 

-10을 double 형으로 변환하면 -10.0 으로 표현 할 수 있습니다. 


d3 = 10.675

10.675 보다 작거나 같은 정수 값은 10 입니다. 

10을 double 형으로 변환하며 10.0 입니다. 


위 코드를 실행 하면 아래와 같은 결과 값을 리턴 합니다. 


-11.0

-10.0

10.0


floor() 함수는 자주 사용하는 함수 입니다. 

꼭 기억 해두셨다가 사용하시길 바랍니다. 




 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D



블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,



안녕하세요. 제임스 입니다. 


최근에 자바 Number 관련 함수 중 valueOf 와 parseInt 에 대해 정리 했는데요. 

이 두 함수의 차이점은 무엇일까요? 


parseInt 함수에 대한 내용은 아래 링크 참조하세요.

2018/03/06 - [Java] - [ 자바 코딩 ] Java Integer.parseInt


valueOf 함수에 대한 내용은 아래 링크 참조하세요.

2018/03/26 - [Java] - [ 자바 코딩 ] Java Number - valueOf() 함수




Integer.parseInt() vs Integer.valueOf() 두 함수의 차이점은 무엇일까요? 


결정적인 차이점은 parseInt 함수는 int 형의 primitive data type 을 리턴하는 반면 valueOf 함수는 Integer 객체로 반환한다는 점입니다. 


1
2
int x = Integer.parseInt("5");
Integer y = Integer.valueOf("7");
cs


위 코드는 각각 int 값 5 와 Integer 값 7 을 리턴합니다. 



또 다른 한가지는 차이점이라 이야기 하긴 어렵긴 한데요...

사실 valueOf 함수가 내부적으로 parseInt 함수를 사용하고 있습니다. 

아래는 Integer.class 소스 내용 중 관련 부분 발췌했습니다. 


public static int parseInt(String s) throws NumberFormatException {
    return parseInt(s, 10);
}

public static Integer valueOf(String s, int radix) throws NumberFormatException {
    return Integer.valueOf(parseInt(s, radix));
}

public static Integer valueOf(String s) throws NumberFormatException {
    return Integer.valueOf(parseInt(s, 10));
}


valueOf 함수 결과 값을 리턴 할때 이미 내부적으로 parseInt 한 값을 Integer 형으로 리턴하고 있는 것을 보실 수 있습니다. 



두 함수의 차이점 이해 하셨나요? 

비슷하지만 다른 두 함수의 리턴 값, 잘 알아 두시면 좋을 거예요. 




 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D




블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,



안녕하세요. 제임스 입니다. 


이번 포스팅에는 Java Number 관련 함수 중 valueOf() 함수에 대해 정리해 보겠습니다. 


valueOf() 함수는 입력받은 인자 값을 지정된 Number 객체 형으로 변환하여 반환 합니다. 이 인자값은 primitive data type (원시 데이터 형 - byte, int, long, double, boolean 등 자바 키워드로 이미 지정된 데이터 형) 또는 문자열 등이 될 수 있습니다. 



Syntax

1. public static Integer valueOf( int i )

2. public static Integer valueOf( String s )

3. public static Integer valueOf( String s, int radix )


그외 Double, Float 등도 valueOf (primitiveType value) 또는 valueOf(String s) 함수를 가지고 있습니다. 

즉, 아래과 같은 syntax 들이 더 있습니다. 참고 하세요.

public static Double valueOf(double d)

public static Float valueOf(float f)


Parameters

첫번째, 두번째 입력 값은 각각 int 및 String 으로 단 하나의 입력 값을 가지고 있습니다. 

이와 다르게 세번째 함수는 String 값과 int 값을 동시에 순차적으로 입력을 받습니다. 입력된 String 형의 값을 두번째 인자값으로 입력된 진수에 맞춰서 변환 합니다. 

예를 들면 Integer.valueOf("100", 16) 이라는 코드가 있다면 100 을 16진수로 변환하여 Integer 형으로 반환 한다는 뜻입니다. 


Sample Code

1
2
3
4
5
6
7
8
9
Integer a =Integer.valueOf(7);
Double b = Double.valueOf(5);
Float c = Float.valueOf("38");               
Integer d = Integer.valueOf("100",16);
 
System.out.println("a = "+a); 
System.out.println("b = "+b);
System.out.println("c = "+c);
System.out.println("d = "+d);
cs



결과 값은 아래와 같습니다. 


a = 7

b = 5.0

c = 38.0

d = 256



입력 파라미터 값도 중요 하지만 어떤 형으로 반환 할 것인지 결정을 잘해야 겠죠? ^^




 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D




블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,



안녕하세요. 제임스 입니다. 


이번에는 Java Number 관련 함수 중 equals() 라는 함수에 대해 알아 보겠습니다. 



equals() 함수는 함수를 호출하는 Number 객체가 인자 값으로 전달 되는 객체와 같은지 여부를 판단하여 boolean  형으로 리턴 해줍니다.  



Syntax

public boolean equals( Object o )


Parameters

인자 값으로는 어떤 객체든 상관 없이 받을 수 있습니다. 


Return Value

▶ 인자값이 null 이 아니고, 비교 대상이 동일한 값이며 동일한 형일 경우 true

▶ 인자값이 null 이거나, 비교 대상이 다른 값일 경우 또는 형이 다른 경우 false

를 반환합니다. 


Sample Code

1
2
3
4
5
6
7
8
Integer x = 7;
Integer y = 20;
Integer z =7;
Short a = 7;
 
System.out.println(x.equals(y));  
System.out.println(x.equals(z)); 
System.out.println(x.equals(a));
cs


비교대상이 되는 x 값을 Integer 형의 7로 설정했습니다. 

그리고 동일한 Integer 형의 20 과 7을 비교 해봅니다. 


첫번째 7과 20은 동일한 형이지만 다른 값이므로 false 가 나올것으로 예상됩니다. 

두번째 7과 7은 동일한 형에 동일 값으로 true 가 리턴 될 것입니다. 

세번째 7과 7은 값은 같지만 Integer 와 Short 로 서로 다른 형이기에 결론적으로 다른 값으로 볼수 있습니다. 즉, false 가 리턴 될 것으로 예상 할 수 있습니다. 


결과 값은 어떻게 나올까요? 


아래와 같습니다. 


false

true

false



equals() 함수는 값만 보는 것이 아니라 데이타 타입 즉, 형도 같이 비교 대상입니다. 꼭, 기억해 두세요 ^^




 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D



블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,