Responsive Advertisement

Java에서 숫자 다루기: 기본 개념과 활용법

Java에서 숫자를 다루는 것은 다양한 애플리케이션과 프로그램에서 중요한 요소입니다. 숫자는 정수형과 실수형으로 나뉘며, 각각의 데이터 타입에 따라 다르게 사용됩니다. Java는 기본 데이터 타입과 객체형 래퍼 클래스를 통해 숫자를 효과적으로 다룰 수 있는 다양한 방법을 제공합니다. 이번 글에서는 Java에서 숫자를 다루는 방법과 유용한 예제를 소개하겠습니다.

Java의 숫자 데이터 타입

Java의 숫자 데이터 타입은 크게 정수형실수형으로 나뉩니다. 각각의 타입은 저장할 수 있는 값의 범위와 크기가 다릅니다.

1. 정수형 데이터 타입

  • byte: 1바이트, 범위: -128 ~ 127
  • short: 2바이트, 범위: -32,768 ~ 32,767
  • int: 4바이트, 범위: -2,147,483,648 ~ 2,147,483,647
  • long: 8바이트, 범위: -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

2. 실수형 데이터 타입

  • float: 4바이트, 소수점 이하 약 7자리의 정확도
  • double: 8바이트, 소수점 이하 약 15자리의 정확도

실수형은 주로 소수점 이하의 정확도가 필요한 경우 double을 사용하며, 메모리 절약이 필요하거나 정확도가 덜 중요한 경우 float을 사용합니다.

숫자 데이터 타입 예제

public class NumberExample {
    public static void main(String[] args) {
        // 정수형 데이터 타입
        int intNumber = 100;
        long longNumber = 10000000000L; // L 접미사 필요

        // 실수형 데이터 타입
        float floatNumber = 5.75F; // F 접미사 필요
        double doubleNumber = 19.99;

        System.out.println("정수형 int: " + intNumber);
        System.out.println("정수형 long: " + longNumber);
        System.out.println("실수형 float: " + floatNumber);
        System.out.println("실수형 double: " + doubleNumber);
    }
}

출력 결과:

정수형 int: 100
정수형 long: 10000000000
실수형 float: 5.75
실수형 double: 19.99

숫자 연산

Java에서는 기본적인 산술 연산자와 함께 다양한 수학 연산을 지원합니다. 덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/), 나머지(%)와 같은 연산자를 사용할 수 있습니다.

예제 코드: 산술 연산

public class ArithmeticExample {
    public static void main(String[] args) {
        int a = 10;
        int b = 3;

        System.out.println("덧셈: " + (a + b)); // 13
        System.out.println("뺄셈: " + (a - b)); // 7
        System.out.println("곱셈: " + (a * b)); // 30
        System.out.println("나눗셈: " + (a / b)); // 3
        System.out.println("나머지: " + (a % b)); // 1
    }
}

나눗셈 연산 시 정수형 변수끼리 나눗셈을 하면 소수점 이하가 버려지므로, 실수형으로 변환해야 정확한 결과를 얻을 수 있습니다.

실수형 나눗셈 예제

public class DivisionExample {
    public static void main(String[] args) {
        double a = 10.0;
        double b = 3.0;

        System.out.println("실수형 나눗셈: " + (a / b)); // 3.333...
    }
}

숫자 관련 클래스

Java는 래퍼 클래스를 통해 기본 데이터 타입을 객체로 다룰 수 있는 기능을 제공합니다. Integer, Double, Float, Long 등이 대표적인 래퍼 클래스입니다. 이러한 클래스는 유용한 메서드를 제공하여 숫자 변환, 비교, 형식화 등을 지원합니다.

래퍼 클래스 예제

public class WrapperClassExample {
    public static void main(String[] args) {
        Integer intObject = Integer.valueOf(100);
        Double doubleObject = Double.valueOf(5.75);

        System.out.println("Integer 객체: " + intObject);
        System.out.println("Double 객체: " + doubleObject);

        // 문자열을 숫자로 변환
        String numberString = "123";
        int parsedNumber = Integer.parseInt(numberString);
        System.out.println("문자열을 숫자로 변환: " + parsedNumber);
    }
}

Math 클래스 활용

Java의 Math 클래스는 수학 계산에 유용한 메서드를 제공합니다. 절대값 계산, 제곱근, 거듭제곱, 삼각 함수 등 다양한 기능을 사용할 수 있습니다.

Math 클래스 예제

public class MathExample {
    public static void main(String[] args) {
        double num = -4.5;

        System.out.println("절대값: " + Math.abs(num)); // 4.5
        System.out.println("제곱근: " + Math.sqrt(16)); // 4.0
        System.out.println("거듭제곱: " + Math.pow(2, 3)); // 8.0
        System.out.println("최대값: " + Math.max(10, 20)); // 20
        System.out.println("랜덤값 (0.0 ~ 1.0): " + Math.random());
    }
}

Math.random()은 0.0 이상 1.0 미만의 난수를 반환하며, 이를 활용해 범위를 지정할 수도 있습니다.

데이터 타입 변환

Java에서는 숫자 데이터 타입 간 변환이 필요할 때가 있습니다. 예를 들어, int에서 double로 변환할 때는 자동 변환이 이루어지지만, double에서 int로 변환할 때는 명시적 형변환이 필요합니다.

명시적 변환 예제

public class TypeCastingExample {
    public static void main(String[] args) {
        double doubleValue = 9.78;
        int intValue = (int) doubleValue; // 강제 형변환

        System.out.println("double 값: " + doubleValue);
        System.out.println("int 값: " + intValue); // 9 (소수점 버림)
    }
}

결론

Java에서 숫자를 다루는 것은 기본적인 프로그래밍 작업 중 하나이며, 다양한 데이터 타입과 연산, 그리고 래퍼 클래스와 Math 클래스의 기능을 통해 더 강력한 기능을 구현할 수 있습니다. 숫자 데이터 타입을 올바르게 이해하고 사용하는 것은 효율적이고 안정적인 코드 작성에 매우 중요합니다. 위 예제를 통해 Java 숫자 타입과 연산을 더욱 깊이 이해하고 활용해 보세요!

댓글 쓰기