λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
μΉ΄ν…Œκ³ λ¦¬ μ—†μŒ

μžλ°” μ†Œμˆ˜μ  n번째 μžλ¦¬κΉŒμ§€ λ°˜μ˜¬λ¦Όν•˜κΈ°

by 5566 2023. 10. 15.

1. μ†Œμˆ˜μ  λ°˜μ˜¬λ¦Όμ΄λž€?

μ†Œμˆ˜μ  λ°˜μ˜¬λ¦Όμ€ 숫자 값을 κ°€κΉŒμš΄ μ •μˆ˜λ‘œ κ·Όμ‚¬ν™”ν•˜λŠ” 방법 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€. μ†Œμˆ˜μ  μ΄ν•˜μ˜ 자리 수λ₯Ό μ‘°μ •ν•˜μ—¬, ν•΄λ‹Ή 자리 미만의 숫자λ₯Ό λ°˜μ˜¬λ¦Όν•˜κ³ , 더 μ •ν™•ν•œ 수λ₯Ό μ–»κΈ° μœ„ν•΄ κ°€μž₯ κ°€κΉŒμš΄ μ •μˆ˜λ‘œ κ·Όμ‚¬ν•©λ‹ˆλ‹€. μ΄λŠ” 컴퓨터 ν”„λ‘œκ·Έλž˜λ°μ—μ„œ 맀우 일반적으둜 μ‚¬μš©λ˜λŠ” μ—°μ‚° 쀑 ν•˜λ‚˜μ΄λ©°, μ •ν™•ν•œ κ²°κ³Όκ°€ ν•„μš”ν•œ 금육, κ³Όν•™, 톡계 뢄석 등에 특히 μ€‘μš”ν•œ 역할을 ν•©λ‹ˆλ‹€.

일반적으둜 μ†Œμˆ˜μ  λ°˜μ˜¬λ¦Όμ€ λ‹€μ–‘ν•œ λ°©λ²•μœΌλ‘œ μˆ˜ν–‰λ  수 μžˆμŠ΅λ‹ˆλ‹€. μžλ°”μ—μ„œλ„ μ΄λŸ¬ν•œ 반올림 κΈ°λŠ₯을 μ œκ³΅ν•˜λ©°, λ‹€μ–‘ν•œ 방법을 ν™œμš©ν•˜μ—¬ μ†Œμˆ˜μ  n번째 μžλ¦¬κΉŒμ§€ λ°˜μ˜¬λ¦Όν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이제 μžλ°”μ—μ„œ μ†Œμˆ˜μ  n번째 μžλ¦¬κΉŒμ§€ λ°˜μ˜¬λ¦Όν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

2. μžλ°”μ—μ„œ μ†Œμˆ˜μ  n번째 μžλ¦¬κΉŒμ§€ λ°˜μ˜¬λ¦Όν•˜λŠ” 방법

μžλ°”μ—μ„œ μ†Œμˆ˜μ  n번째 μžλ¦¬κΉŒμ§€ λ°˜μ˜¬λ¦Όν•˜λŠ” 방법은 λ‹€μ–‘ν•œ λ°©μ‹μœΌλ‘œ κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ°€μž₯ 일반적인 λ°©λ²•μœΌλ‘œλŠ” Math 클래슀의 round() λ©”μ†Œλ“œμ™€ DecimalFormat 클래슀λ₯Ό ν™œμš©ν•˜λŠ” 방법이 μžˆμŠ΅λ‹ˆλ‹€.

2.1 Math.round() λ©”μ†Œλ“œλ₯Ό ν™œμš©ν•œ 반올림

Math ν΄λž˜μŠ€λŠ” μžλ°”μ—μ„œ μ œκ³΅ν•˜λŠ” κΈ°λ³Έ μˆ˜ν•™μ μΈ μ—°μ‚°κ³Ό ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•  수 μžˆλŠ” ν΄λž˜μŠ€μž…λ‹ˆλ‹€. round() λ©”μ†Œλ“œλŠ” μ†Œμˆ˜ 값을 κ°€μž₯ κ°€κΉŒμš΄ μ •μˆ˜λ‘œ λ°˜μ˜¬λ¦Όν•˜λŠ” κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€.

double number = 3.14159265359;
int n = 2; // λ°˜μ˜¬λ¦Όν•  μ†Œμˆ˜μ  자리 수
double roundedNumber = Math.round(number * Math.pow(10, n)) / Math.pow(10, n);
System.out.println(roundedNumber);

μœ„ μ½”λ“œμ—μ„œλŠ” round() λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ μ†Œμˆ˜ 값을 κ°€μž₯ κ°€κΉŒμš΄ λ‘λ²ˆμ§Έ μžλ¦¬κΉŒμ§€ λ°˜μ˜¬λ¦Όν•˜μ˜€μŠ΅λ‹ˆλ‹€. Math.pow() λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ μ†Œμˆ˜ 값을 10의 n승으둜 κ³±ν•΄μ€€ λ’€, round() λ©”μ†Œλ“œλ₯Ό 톡해 κ°€μž₯ κ°€κΉŒμš΄ μ •μˆ˜λ‘œ λ°˜μ˜¬λ¦Όν•œ λ’€, λ‹€μ‹œ 10의 n승으둜 λ‚˜λˆ„μ–΄ μ£Όλ©΄ ν•΄λ‹Ή μžλ¦¬κΉŒμ§€ 반올림된 값을 얻을 수 μžˆμŠ΅λ‹ˆλ‹€.

2.2 DecimalFormat 클래슀λ₯Ό ν™œμš©ν•œ 반올림

DecimalFormat ν΄λž˜μŠ€λŠ” 숫자 ν˜•μ‹μ„ μ§€μ •ν•˜μ—¬ μ›ν•˜λŠ” ν˜•μ‹μœΌλ‘œ 숫자λ₯Ό ν‘œμ‹œν•  수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” ν΄λž˜μŠ€μž…λ‹ˆλ‹€. λ°˜μ˜¬λ¦Όν•  μ†Œμˆ˜μ  자리 수λ₯Ό μ§€μ •ν•˜μ—¬ ν•΄λ‹Ή μžλ¦¬κΉŒμ§€ 반올림된 값을 얻을 수 μžˆμŠ΅λ‹ˆλ‹€.

import java.text.DecimalFormat;

double number = 3.14159265359;
int n = 2; // λ°˜μ˜¬λ¦Όν•  μ†Œμˆ˜μ  자리 수
DecimalFormat decimalFormat = new DecimalFormat("#.##"); // μ†Œμˆ˜μ  λ‘λ²ˆμ§Έ μžλ¦¬κΉŒμ§€ ν‘œμ‹œ
String roundedNumber = decimalFormat.format(number);
System.out.println(roundedNumber);

μœ„ μ½”λ“œμ—μ„œλŠ” DecimalFormat 클래슀λ₯Ό μƒμ„±ν•˜μ—¬ "#.##" ν˜•μ‹μœΌλ‘œ μ†Œμˆ˜ 값을 λ°˜μ˜¬λ¦Όν•˜μ˜€μŠ΅λ‹ˆλ‹€. μ΄λ•Œ "#.##"λŠ” μ†Œμˆ˜μ  λ‘λ²ˆμ§Έ μžλ¦¬κΉŒμ§€ ν‘œμ‹œν•˜κ² λ‹€λŠ” μ˜λ―Έμž…λ‹ˆλ‹€. format() λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ μ†Œμˆ˜ 값을 반올림된 ν˜•μ‹μœΌλ‘œ λ¬Έμžμ—΄λ‘œ λ°˜ν™˜ν•  수 있으며, 결과적으둜 ν•΄λ‹Ή μžλ¦¬κΉŒμ§€ 반올림된 값을 얻을 수 μžˆμŠ΅λ‹ˆλ‹€.

μ΄λ ‡κ²Œ μžλ°”μ—μ„œλŠ” Math.round() λ©”μ†Œλ“œμ™€ DecimalFormat 클래슀λ₯Ό ν™œμš©ν•˜μ—¬ μ†Œμˆ˜μ  n번째 μžλ¦¬κΉŒμ§€ λ°˜μ˜¬λ¦Όν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒ μ ˆμ—μ„œλŠ” μ†Œμˆ˜μ  λ°˜μ˜¬λ¦Όμ„ 진행할 λ•Œ μ£Όμ˜ν•΄μ•Ό ν•  점과 ν™œμš© μ˜ˆμ‹œμ— λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

3. Math.round() λ©”μ†Œλ“œλ₯Ό ν™œμš©ν•œ 반올림

Math 클래슀의 round() λ©”μ†Œλ“œλŠ” μ†Œμˆ˜ 값을 κ°€μž₯ κ°€κΉŒμš΄ μ •μˆ˜λ‘œ λ°˜μ˜¬λ¦Όν•˜λŠ” κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€. μ†Œμˆ˜μ  n번째 μžλ¦¬κΉŒμ§€ λ°˜μ˜¬λ¦Όν•˜κΈ° μœ„ν•΄μ„œλŠ” Math.round() λ©”μ†Œλ“œλ₯Ό ν™œμš©ν•˜μ—¬ μΌμ •ν•œ 과정을 거쳐야 ν•©λ‹ˆλ‹€.

double number = 3.14159265359;
int n = 2; // λ°˜μ˜¬λ¦Όν•  μ†Œμˆ˜μ  자리 수
double roundedNumber = Math.round(number * Math.pow(10, n)) / Math.pow(10, n);

μœ„ μ½”λ“œμ—μ„œλŠ” round() λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ μ†Œμˆ˜ 값을 κ°€μž₯ κ°€κΉŒμš΄ 두 번째 μžλ¦¬κΉŒμ§€ λ°˜μ˜¬λ¦Όν•˜μ˜€μŠ΅λ‹ˆλ‹€. 이λ₯Ό μœ„ν•΄ λ‹€μŒκ³Ό 같은 과정을 μˆ˜ν–‰ν•©λ‹ˆλ‹€.

  1. Math.pow() λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ 수λ₯Ό 10의 n승으둜 μ œκ³±ν•©λ‹ˆλ‹€. 즉, Math.pow(10, n)은 10의 n승과 κ°™μŠ΅λ‹ˆλ‹€.
  2. μ†Œμˆ˜ 값을 number * Math.pow(10, n)으둜 n번째 μžλ¦¬κΉŒμ§€ μ΄λ™μ‹œν‚΅λ‹ˆλ‹€.
  3. round() λ©”μ†Œλ“œλ₯Ό 톡해 μ†Œμˆ˜ 값을 κ°€μž₯ κ°€κΉŒμš΄ μ •μˆ˜λ‘œ λ°˜μ˜¬λ¦Όν•©λ‹ˆλ‹€.
  4. λ§ˆμ§€λ§‰μœΌλ‘œ Math.pow(10, n)으둜 λ‚˜λˆ„μ–΄ μ›λž˜ μœ„μΉ˜λ‘œ λŒλ €λ†“μŠ΅λ‹ˆλ‹€.

μœ„ 과정을 톡해 반올림된 값을 얻을 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λ•Œ 반올림된 값은 double ν˜•νƒœλ‘œ λ°˜ν™˜λ©λ‹ˆλ‹€. λ§Œμ•½ int ν˜•νƒœλ‘œ κ²°κ³Όλ₯Ό μ–»κ³  μ‹Άλ‹€λ©΄, roundedNumber λ³€μˆ˜μ˜ 선언을 int둜 λ³€κ²½ν•˜λ©΄ λ©λ‹ˆλ‹€.

Math.round() λ©”μ†Œλ“œλ₯Ό ν™œμš©ν•˜μ—¬ μ†Œμˆ˜μ  n번째 μžλ¦¬κΉŒμ§€ λ°˜μ˜¬λ¦Όμ„ ν•  수 있으며, DecimalFormat ν΄λž˜μŠ€μ™€ 같이 μ‚¬μš©ν•˜λ©΄ λ”μš± μ •ν™•ν•œ κ²°κ³Όλ₯Ό 얻을 수 μžˆμŠ΅λ‹ˆλ‹€.

4. DecimalFormat 클래슀λ₯Ό ν™œμš©ν•œ 반올림

DecimalFormat ν΄λž˜μŠ€λŠ” 숫자 ν˜•μ‹μ„ μ§€μ •ν•˜μ—¬ μ›ν•˜λŠ” ν˜•μ‹μœΌλ‘œ 숫자λ₯Ό ν‘œμ‹œν•  수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” ν΄λž˜μŠ€μž…λ‹ˆλ‹€. 이 클래슀λ₯Ό ν™œμš©ν•˜μ—¬ μ†Œμˆ˜μ  n번째 μžλ¦¬κΉŒμ§€ λ°˜μ˜¬λ¦Όν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

import java.text.DecimalFormat;

double number = 3.14159265359;
int n = 2; // λ°˜μ˜¬λ¦Όν•  μ†Œμˆ˜μ  자리 수
DecimalFormat decimalFormat = new DecimalFormat("#.##"); // μ†Œμˆ˜μ  λ‘λ²ˆμ§Έ μžλ¦¬κΉŒμ§€ ν‘œμ‹œ
String roundedNumber = decimalFormat.format(number);

μœ„ μ½”λ“œμ—μ„œλŠ” DecimalFormat 클래슀λ₯Ό μƒμ„±ν•˜μ—¬ "#.##" ν˜•μ‹μœΌλ‘œ μ†Œμˆ˜ 값을 λ°˜μ˜¬λ¦Όν•˜μ˜€μŠ΅λ‹ˆλ‹€. μ—¬κΈ°μ„œ "#.##"λŠ” μ†Œμˆ˜μ  두 번째 μžλ¦¬κΉŒμ§€ ν‘œμ‹œν•˜κ² λ‹€λŠ” μ˜λ―Έμž…λ‹ˆλ‹€. μ΄λ ‡κ²Œ μ†Œμˆ˜ 값을 반올림된 ν˜•μ‹μœΌλ‘œ λ¬Έμžμ—΄λ‘œ λ°˜ν™˜ν•  수 있으며, 결과적으둜 ν•΄λ‹Ή μžλ¦¬κΉŒμ§€ 반올림된 값을 얻을 수 μžˆμŠ΅λ‹ˆλ‹€.

DecimalFormat 클래슀λ₯Ό μ‚¬μš©ν•˜μ—¬ μ†Œμˆ˜ 값을 λ°˜μ˜¬λ¦Όν•  λ•Œ μ£Όμ˜ν•΄μ•Ό ν•  점은 λ°˜ν™˜λ˜λŠ” 값을 λ¬Έμžμ—΄λ‘œ λ°›μ•„μ•Ό ν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. λ”°λΌμ„œ κ²°κ³Ό 값을 숫자둜 μ‚¬μš©ν•΄μ•Ό ν•œλ‹€λ©΄, λ°˜λ“œμ‹œ λ¬Έμžμ—΄μ„ 숫자둜 λ³€ν™˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.

double roundedNumber = Double.parseDouble(decimalFormat.format(number));

μœ„μ™€ 같이 λ¬Έμžμ—΄λ‘œ 받은 반올림된 값을 Double.parseDouble() λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ λ‹€μ‹œ 숫자둜 λ³€ν™˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

DecimalFormat 클래슀λ₯Ό ν™œμš©ν•˜μ—¬ μ†Œμˆ˜μ  n번째 μžλ¦¬κΉŒμ§€ λ°˜μ˜¬λ¦Όν•˜λŠ” 방법은 Math.round() λ©”μ†Œλ“œμ™€ ν•¨κ»˜ μ‚¬μš©λ  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. DecimalFormat ν΄λž˜μŠ€λŠ” 보닀 λ‹€μ–‘ν•œ ν˜•μ‹μ„ 지정할 수 μžˆμ–΄, μ›ν•˜λŠ” ν˜•νƒœλ‘œ μ†Œμˆ˜ 값을 ν‘œμ‹œν•˜κ³  μ²˜λ¦¬ν•  수 μžˆλŠ” μž₯점을 가지고 μžˆμŠ΅λ‹ˆλ‹€.

5. μ£Όμ˜ν•  점과 ν™œμš© μ˜ˆμ‹œ

DecimalFormat 클래슀λ₯Ό ν™œμš©ν•˜μ—¬ μ†Œμˆ˜μ  n번째 μžλ¦¬κΉŒμ§€ λ°˜μ˜¬λ¦Όν•˜λŠ” 방법을 μ‚¬μš©ν•  λ•Œ μ£Όμ˜ν•΄μ•Ό ν•  점과 μ˜ˆμ‹œλ₯Ό μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

μ£Όμ˜ν•  점

  1. DecimalFormat ν˜•μ‹ 지정 λ¬Έμžμ—΄μ˜ μž‘μ„±: DecimalFormat ν΄λž˜μŠ€μ—μ„œ ν˜•μ‹μ„ 지정할 λ•Œ μ‚¬μš©ν•˜λŠ” λ¬Έμžμ—΄ νŒ¨ν„΄μ€ νŠΉμ • κ·œμΉ™μ„ 따라야 ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, μ†Œμˆ˜μ  n번째 μžλ¦¬κΉŒμ§€ λ°˜μ˜¬λ¦Όν•˜κ³  μ‹Άλ‹€λ©΄ "#.##"와 같은 ν˜•μ‹μ„ μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€. λ”°λΌμ„œ ν˜•μ‹ 지정 λ¬Έμžμ—΄μ„ μ˜¬λ°”λ₯΄κ²Œ μž‘μ„±ν•΄μ•Ό μ •ν™•ν•œ κ²°κ³Όλ₯Ό 얻을 수 μžˆμŠ΅λ‹ˆλ‹€.

  2. λ¬Έμžμ—΄ ν˜•νƒœμ˜ λ°˜ν™˜κ°’: DecimalFormat 클래슀의 format() λ©”μ†Œλ“œλŠ” 숫자 값을 λ¬Έμžμ—΄λ‘œ λ°˜ν™˜ν•©λ‹ˆλ‹€. λ”°λΌμ„œ 반올림된 값을 숫자둜 μ‚¬μš©ν•΄μ•Ό ν•  경우, λ¬Έμžμ—΄μ„ λ‹€μ‹œ 숫자둜 λ³€ν™˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ΄λ•Œ, parseDouble()κ³Ό 같은 숫자 λ³€ν™˜ λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

ν™œμš© μ˜ˆμ‹œ

import java.text.DecimalFormat;

double number = 3.14159265359;
int n = 2; // λ°˜μ˜¬λ¦Όν•  μ†Œμˆ˜μ  자리 수
DecimalFormat decimalFormat = new DecimalFormat("#.##"); // μ†Œμˆ˜μ  λ‘λ²ˆμ§Έ μžλ¦¬κΉŒμ§€ ν‘œμ‹œ
String roundedNumberStr = decimalFormat.format(number);
double roundedNumber = Double.parseDouble(roundedNumberStr);

System.out.println("반올림된 κ°’ (λ¬Έμžμ—΄): " + roundedNumberStr);
System.out.println("반올림된 κ°’ (숫자): " + roundedNumber);

μœ„ μ˜ˆμ‹œ μ½”λ“œλŠ” μ†Œμˆ˜ 값을 DecimalFormat 클래슀λ₯Ό μ‚¬μš©ν•˜μ—¬ μ†Œμˆ˜μ  두 번째 μžλ¦¬κΉŒμ§€ λ°˜μ˜¬λ¦Όν•œ ν›„, λ¬Έμžμ—΄κ³Ό 숫자 ν˜•νƒœλ‘œ ν‘œν˜„ν•˜λŠ” 방법을 λ³΄μ—¬μ€λ‹ˆλ‹€. 반올림된 값을 λ¬Έμžμ—΄λ‘œ ν‘œμ‹œν•˜κ³ , 숫자둜 μ‚¬μš©ν•  λ•ŒλŠ” parseDouble() λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ λ‹€μ‹œ 숫자둜 λ³€ν™˜ν•œ ν›„ 좜λ ₯ν•©λ‹ˆλ‹€.

DecimalFormat 클래슀λ₯Ό ν™œμš©ν•˜μ—¬ μ†Œμˆ˜ 값을 μ›ν•˜λŠ” ν˜•νƒœλ‘œ ν‘œν˜„ν•˜κ³  μ²˜λ¦¬ν•  수 μžˆμœΌλ―€λ‘œ, νŠΉμ •ν•œ ν˜•μ‹μ΄ ν•„μš”ν•œ 경우 μœ μš©ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ£Όμ˜ν•  점과 ν™œμš© μ˜ˆμ‹œ

DecimalFormat 클래슀λ₯Ό μ‚¬μš©ν•˜μ—¬ μ†Œμˆ˜μ  n번째 μžλ¦¬κΉŒμ§€ λ°˜μ˜¬λ¦Όν•˜λŠ” 방법을 ν™œμš©ν•  λ•Œ μ£Όμ˜ν•΄μ•Ό ν•  점과 ν•¨κ»˜ μ˜ˆμ‹œλ₯Ό μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

μ£Όμ˜ν•  점

  1. DecimalFormat ν˜•μ‹ 지정 λ¬Έμžμ—΄ μž‘μ„±: μ†Œμˆ˜ 값을 μ›ν•˜λŠ” ν˜•μ‹μœΌλ‘œ ν‘œμ‹œν•˜κΈ° μœ„ν•΄μ„œλŠ” DecimalFormat ν΄λž˜μŠ€μ—μ„œ ν˜•μ‹μ„ μ§€μ •ν•˜λŠ” λ¬Έμžμ—΄ νŒ¨ν„΄μ„ μž‘μ„±ν•΄μ•Ό ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, μ†Œμˆ˜μ  두 번째 μžλ¦¬κΉŒμ§€ λ°˜μ˜¬λ¦Όν•˜κ³  μ‹Άλ‹€λ©΄ "#.##"와 같은 ν˜•μ‹μ„ μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€. ν˜•μ‹ 지정 λ¬Έμžμ—΄μ„ μ˜¬λ°”λ₯΄κ²Œ μž‘μ„±ν•˜μ§€ μ•ŠμœΌλ©΄ μ›ν•˜λŠ” κ²°κ³Όλ₯Ό 얻을 수 μ—†μŠ΅λ‹ˆλ‹€.

  2. λ¬Έμžμ—΄ λ°˜ν™˜κ°’: DecimalFormat 클래슀의 format() λ©”μ†Œλ“œλŠ” 숫자 값을 λ¬Έμžμ—΄λ‘œ λ°˜ν™˜ν•©λ‹ˆλ‹€. λ”°λΌμ„œ 반올림된 값을 숫자둜 μ‚¬μš©ν•΄μ•Ό ν•  경우, λ¬Έμžμ—΄μ„ λ‹€μ‹œ 숫자둜 λ³€ν™˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. 이λ₯Ό μœ„ν•΄ parseDouble()κ³Ό 같은 숫자 λ³€ν™˜ λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ λ¬Έμžμ—΄μ„ 숫자둜 λ³€ν™˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.

ν™œμš© μ˜ˆμ‹œ

import java.text.DecimalFormat;

double number = 3.14159265359;
int n = 2; // λ°˜μ˜¬λ¦Όν•  μ†Œμˆ˜μ  자리 수
DecimalFormat decimalFormat = new DecimalFormat("#.##"); // μ†Œμˆ˜μ  두 번째 μžλ¦¬κΉŒμ§€ ν‘œμ‹œ
String roundedNumberStr = decimalFormat.format(number);
double roundedNumber = Double.parseDouble(roundedNumberStr);

System.out.println("반올림된 κ°’ (λ¬Έμžμ—΄): " + roundedNumberStr);
System.out.println("반올림된 κ°’ (숫자): " + roundedNumber);

μœ„ μ˜ˆμ‹œ μ½”λ“œλŠ” DecimalFormat 클래슀λ₯Ό μ‚¬μš©ν•˜μ—¬ μ†Œμˆ˜ 값을 μ†Œμˆ˜μ  두 번째 μžλ¦¬κΉŒμ§€ λ°˜μ˜¬λ¦Όν•œ ν›„, λ¬Έμžμ—΄κ³Ό 숫자 ν˜•νƒœλ‘œ ν‘œν˜„ν•˜λŠ” 방법을 λ³΄μ—¬μ€λ‹ˆλ‹€. 반올림된 값을 λ¬Έμžμ—΄λ‘œ ν‘œμ‹œν•˜κ³ , 숫자둜 μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” parseDouble() λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ λ¬Έμžμ—΄μ„ λ‹€μ‹œ 숫자둜 λ³€ν™˜ν•©λ‹ˆλ‹€. λ§ˆμ§€λ§‰μœΌλ‘œ 반올림된 값을 좜λ ₯ν•©λ‹ˆλ‹€.

DecimalFormat 클래슀λ₯Ό ν™œμš©ν•˜μ—¬ μ›ν•˜λŠ” ν˜•νƒœλ‘œ μ†Œμˆ˜ 값을 ν‘œν˜„ν•˜κ³  μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ›ν•˜λŠ” ν˜•μ‹μ„ 지정할 수 μžˆλŠ” μž₯점을 κ°€μ§€λ―€λ‘œ, νŠΉμ •ν•œ ν˜•νƒœλ‘œ 숫자λ₯Ό ν‘œμ‹œν•  λ•Œ μœ μš©ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ£Όμ˜ν•  점과 ν™œμš© μ˜ˆμ‹œ

ν•˜μœ„ ν•­λͺ©μ—μ„œλŠ” DecimalFormat 클래슀λ₯Ό μ‚¬μš©ν•˜μ—¬ μ†Œμˆ˜μ  n번째 μžλ¦¬κΉŒμ§€ λ°˜μ˜¬λ¦Όν•˜λŠ” 방법을 μ‚¬μš©ν•  λ•Œ μ£Όμ˜ν•΄μ•Ό ν•  점과 ν™œμš© μ˜ˆμ‹œλ₯Ό μžμ„Ένžˆ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

μ£Όμ˜ν•  점

1. DecimalFormat ν˜•μ‹ 지정 λ¬Έμžμ—΄μ˜ μž‘μ„±

DecimalFormat 클래슀λ₯Ό μ‚¬μš©ν•˜μ—¬ ν˜•μ‹μ„ 지정할 λ•ŒλŠ” νŠΉμ •ν•œ λ¬Έμžμ—΄ νŒ¨ν„΄μ„ μ§€μΌœμ•Ό ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, μ†Œμˆ˜μ μ„ n번째 μžλ¦¬κΉŒμ§€ λ°˜μ˜¬λ¦Όν•˜λ €λ©΄ #.##κ³Ό 같은 ν˜•μ‹μ„ μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€. ν˜•μ‹ 지정 λ¬Έμžμ—΄μ„ μ˜¬λ°”λ₯΄κ²Œ μž‘μ„±ν•˜μ§€ μ•ŠμœΌλ©΄ μ›ν•˜λŠ” κ²°κ³Όλ₯Ό 얻을 수 μ—†μŠ΅λ‹ˆλ‹€.

2. λ¬Έμžμ—΄ ν˜•νƒœμ˜ λ°˜ν™˜κ°’

DecimalFormat 클래슀의 format() λ©”μ†Œλ“œλŠ” 숫자 값을 λ¬Έμžμ—΄λ‘œ λ°˜ν™˜ν•©λ‹ˆλ‹€. λ”°λΌμ„œ 반올림된 값을 숫자둜 μ‚¬μš©ν•˜λ €λ©΄ λ¬Έμžμ—΄μ„ λ‹€μ‹œ 숫자둜 λ³€ν™˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. 이λ₯Ό μœ„ν•΄ parseDouble()κ³Ό 같은 숫자 λ³€ν™˜ λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ λ©λ‹ˆλ‹€.

ν™œμš© μ˜ˆμ‹œ

μ•„λž˜ μ˜ˆμ‹œ μ½”λ“œλŠ” DecimalFormat 클래슀λ₯Ό ν™œμš©ν•˜μ—¬ μ†Œμˆ˜ 값을 μ§€μ •λœ ν˜•μ‹μœΌλ‘œ λ°˜μ˜¬λ¦Όν•œ ν›„ λ¬Έμžμ—΄κ³Ό 숫자둜 λ‹€λ£¨λŠ” 방법을 λ³΄μ—¬μ€λ‹ˆλ‹€.

import java.text.DecimalFormat;

double number = 3.14159265359;
int n = 2; // λ°˜μ˜¬λ¦Όν•  μ†Œμˆ˜μ  자리 수
DecimalFormat decimalFormat = new DecimalFormat("#.##"); // μ†Œμˆ˜μ  두 번째 μžλ¦¬κΉŒμ§€ ν‘œμ‹œ
String roundedNumberStr = decimalFormat.format(number);
double roundedNumber = Double.parseDouble(roundedNumberStr);

System.out.println("반올림된 κ°’ (λ¬Έμžμ—΄): " + roundedNumberStr);
System.out.println("반올림된 κ°’ (숫자): " + roundedNumber);

μœ„ μ½”λ“œλŠ” μ†Œμˆ˜ 값을 DecimalFormat 클래슀λ₯Ό μ‚¬μš©ν•˜μ—¬ μ†Œμˆ˜μ  두 번째 μžλ¦¬κΉŒμ§€ λ°˜μ˜¬λ¦Όν•œ ν›„, λ¬Έμžμ—΄κ³Ό 숫자 ν˜•νƒœλ‘œ ν‘œν˜„ν•˜λŠ” 방법을 λ³΄μ—¬μ€λ‹ˆλ‹€. 반올림된 값을 λ¬Έμžμ—΄λ‘œ ν‘œμ‹œν•˜κ³ , 숫자둜 μ‚¬μš©ν•  λ•ŒλŠ” parseDouble() λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ λ¬Έμžμ—΄μ„ 숫자둜 λ³€ν™˜ν•©λ‹ˆλ‹€. λ§ˆμ§€λ§‰μœΌλ‘œ 반올림된 값을 좜λ ₯ν•©λ‹ˆλ‹€.

DecimalFormat 클래슀λ₯Ό ν™œμš©ν•˜μ—¬ μ†Œμˆ˜ 값을 μ›ν•˜λŠ” ν˜•νƒœλ‘œ ν‘œν˜„ν•˜κ³  μ²˜λ¦¬ν•  수 μžˆμœΌλ―€λ‘œ, νŠΉμ •ν•œ ν˜•μ‹μ΄ ν•„μš”ν•œ 경우 μœ μš©ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λŒ“κΈ€