이 글에서는 Java를 사용하여 두 개의 부동 소수점(floating-point) 숫자를 곱하는 방법을 자세히 알아봅니다. 부동 소수점 숫자란 소수점 이하 값을 가지는 숫자를 의미합니다.
Java의 float 데이터 타입은 단정밀도(single-precision) 32비트 IEEE 754 부동 소수점 방식을 따릅니다. 주로 부동 소수점 숫자가 대량으로 저장되는 대형 배열에서 메모리를 절약하기 위해 사용되며, 기본값(default value)은 0.0f입니다. 다만 float는 정밀한 값이 요구되는 경우, 예를 들어 통화(금액) 계산에는 절대 사용해서는 안 됩니다. 정확한 소수 계산이 필요하다면 BigDecimal이나 double 타입을 고려하는 것이 좋습니다.
아래는 실제 동작 예시입니다.
입력 예시
Value_1: 12.4f Value_2: 15.7f
출력 예시
Result : 194.68f
알고리즘
두 개의 부동 소수점 숫자를 곱하는 전체 과정은 다음과 같은 단계로 진행됩니다.
Step 1 - 시작 Step 2 - 세 개의 float 변수 선언: input_1, input_2, product Step 3 - 사용자에게 두 개의 실수 입력을 요청하거나 값을 직접 정의 Step 4 - 값을 읽어들임 Step 5 - 곱셈 연산자(*)를 사용하여 두 값을 곱함 Step 6 - 결과 출력 Step 7 - 종료
예제 1: Scanner로 사용자 입력 받기
첫 번째 예제는 Scanner 클래스를 사용하여 사용자가 직접 콘솔에 값을 입력하는 방식입니다. 실행 후 프롬프트에 따라 두 개의 실수를 입력하면 곱셈 결과가 화면에 출력됩니다.
import java.util.Scanner;
public class MultiplyFloatValues{
public static void main(String[] args){
float input_1, input_2, my_prod;
Scanner my_scan = new Scanner(System.in);
System.out.println("첫 번째 부동 소수점 숫자를 입력하세요: ");
input_1 = my_scan.nextFloat();
System.out.println("두 번째 부동 소수점 숫자를 입력하세요: ");
input_2 = my_scan.nextFloat();
my_prod = input_1 * input_2;
System.out.println("\n두 값의 곱은: " + my_prod);
}
}실행 결과
첫 번째 부동 소수점 숫자를 입력하세요: 12.4 두 번째 부동 소수점 숫자를 입력하세요: 15.7 두 값의 곱은: 194.68
예제 2: 미리 정의된 값 사용하기
두 번째 예제는 값을 코드 안에 미리 정의해 두고, 해당 값을 곱하여 결과를 콘솔에 출력하는 방식입니다. 테스트나 간단한 검증 시 유용하게 활용할 수 있습니다.
public class MultiplyFloatValues{
public static void main(String[] args){
float value_1, value_2, my_prod;
value_1 = 12.4f;
value_2 = 15.7f;
System.out.printf("두 숫자는 %.2f와 %.2f 입니다.", value_1, value_2);
my_prod = value_1 * value_2;
System.out.println("\n두 값의 곱은: " + my_prod);
}
}실행 결과
두 숫자는 12.40와 15.70 입니다. 두 값의 곱은: 194.68
정리
지금까지 Java에서 두 개의 부동 소수점 숫자를 곱하는 두 가지 방법을 살펴보았습니다. 하나는 Scanner를 통해 사용자 입력을 받는 방식이고, 다른 하나는 값을 미리 정의해 두는 방식입니다. 핵심은 float 타입 변수를 선언하고 곱셈 연산자(*)로 계산한 뒤 결과를 출력하는 것입니다. 참고로 float는 메모리 효율성이 뛰어나지만 정밀도가 제한적이므로, 금융 계산처럼 높은 정확도가 필요한 작업에서는 double 또는 BigDecimal 사용을 권장합니다.