Programing

Java에서 이중 형식을 지정하는 문자열.format()

c10106 2022. 5. 20. 21:24
반응형

Java에서 이중 형식을 지정하는 문자열.format()

사용 방법String.format(format, args)아래 같은 더블을 포맷하기 위해서?

2354548.235->2,354,548.23

String.format("%1$,.2f", myDouble);

String.format기본 로케일을 자동으로 사용한다.

String.format("%4.3f" , x) ;

그것은 우리가 ans에 총 4자리가 필요하다는 것을 의미한다. 그 중 3은 소수점 뒤에 있어야 한다. 그리고 f는 이중의 형식 지정자이다. x는 우리가 그것을 찾기를 원하는 변수를 의미한다. 나를 위해 일했다.

수동으로 설정한 기호로 포맷하려면 다음을 사용하십시오.

DecimalFormatSymbols decimalFormatSymbols = new DecimalFormatSymbols();
decimalFormatSymbols.setDecimalSeparator('.');
decimalFormatSymbols.setGroupingSeparator(',');
DecimalFormat decimalFormat = new DecimalFormat("#,##0.00", decimalFormatSymbols);
System.out.println(decimalFormat.format(1237516.2548)); //1,237,516.25

그러나 로케일 기반 포맷이 선호된다.

이 링크에서 추출된 코드;

Double amount = new Double(345987.246);
NumberFormat numberFormatter;
String amountOut;

numberFormatter = NumberFormat.getNumberInstance(currentLocale);
amountOut = numberFormatter.format(amount);
System.out.println(amountOut + " " + 
                   currentLocale.toString());

이 예제의 출력은 로케일에 따라 동일한 숫자의 형식이 어떻게 달라지는지 보여준다.

345 987,246  fr_FR
345.987,246  de_DE
345,987.246  en_US
public class MainClass {
   public static void main(String args[]) {
    System.out.printf("%d %(d %+d %05d\n", 3, -3, 3, 3);

    System.out.printf("Default floating-point format: %f\n", 1234567.123);
    System.out.printf("Floating-point with commas: %,f\n", 1234567.123);
    System.out.printf("Negative floating-point default: %,f\n", -1234567.123);
    System.out.printf("Negative floating-point option: %,(f\n", -1234567.123);

    System.out.printf("Line-up positive and negative values:\n");
    System.out.printf("% ,.2f\n% ,.2f\n", 1234567.123, -1234567.123);
  }
}

출력:

3 (3) +3 00003
기본 부동 소수점 형식: 1234567,123000
쉼표가 있는 부동 소수점: 1.234.567,123000
음의 부동 소수점 기본값: -1.234.567,123000
음의 부동 소수점 옵션: (1.234.567,123000)

양수 및 음수 값 라인업:
1.234.567,12
-1.234.567,12

네가 이것을 할 수 있는 방법은 많다.아래는 다음과 같다.

원래 번호가 아래에 주어진다고 가정합시다: 이중 번호 = 2354548.235;

사용.NumberFormat및 반올림 모드

NumberFormat nf = DecimalFormat.getInstance(Locale.ENGLISH);
    DecimalFormat decimalFormatter = (DecimalFormat) nf;
    decimalFormatter.applyPattern("#,###,###.##");
    decimalFormatter.setRoundingMode(RoundingMode.CEILING);

    String fString = decimalFormatter.format(number);
    System.out.println(fString);

문자열 포맷터 사용

System.out.println(String.format("%1$,.2f", number));

모든 경우 출력: 2354548.24

참고:

라운딩 중에 추가할 수 있음RoundingMode네 포맷터 안에.다음은 지정된 라운딩 모드:

    decimalFormat.setRoundingMode(RoundingMode.CEILING);
    decimalFormat.setRoundingMode(RoundingMode.FLOOR);
    decimalFormat.setRoundingMode(RoundingMode.HALF_DOWN);
    decimalFormat.setRoundingMode(RoundingMode.HALF_UP);
    decimalFormat.setRoundingMode(RoundingMode.UP);

다음은 수입품이다.

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Locale;

사용하다DecimalFormat

 NumberFormat nf = DecimalFormat.getInstance(Locale.ENGLISH);
 DecimalFormat decimalFormatter = (DecimalFormat) nf;
 decimalFormatter.applyPattern("#,###,###.##");
 String fString = decimalFormatter.format(myDouble);
 System.out.println(fString);

참조URL: https://stackoverflow.com/questions/4885254/string-format-to-format-double-in-java

반응형