String.format (format String, X)을 사용하여 다음과 같이 이중 형식을 지정하려면 어떻게해야합니까 ???
2354548.235-> 2,354,548.23
감사!
답변
String.format("%1$,.2f", myDouble);
String.format
기본 로캘을 자동으로 사용합니다.
답변
String.format("%4.3f" , x) ;
이것은 ans에 총 4 자리 숫자가 필요하다는 것을 의미합니다. 그리고 f는 double의 형식 지정자입니다. 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
답변
이를 수행 할 수있는 방법은 여러 가지가 있습니다. 그것들은 다음과 같습니다.
원래 번호에 다음과 같이 주어진다고 가정하십시오. double number = 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);