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
'Programing' 카테고리의 다른 글
Java에서 문자열을 int로 변환하는 방법 (0) | 2022.05.20 |
---|---|
vuetify의 확장 패널 문제를 해결하는 방법 (0) | 2022.05.20 |
공식 C 문서와 같은 것이 있는가? (0) | 2022.05.20 |
Vue - 부모 참조를 자녀에게 소품으로 전달하는 방법? (0) | 2022.05.20 |
C 또는 C++로 '타입형'을 하면 언제 '_t'를 추가해야 하는가? (0) | 2022.05.20 |