double의 소수를 형식화하는 데 문제가 있습니다. 예를 들어 4.0과 같이 이중 값이있는 경우 소수점을 대신 4.00으로 지정하려면 어떻게해야합니까?
답변
방법 중 하나는 NumberFormat을 사용하는 것 입니다.
NumberFormat formatter = new DecimalFormat("#0.00");
System.out.println(formatter.format(4.0));
산출:
4.00
답변
Java 8에서는 format
방법 을 사용할 수 있습니다 .. :-
System.out.format("%.2f", 4.0); // OR
System.out.printf("%.2f", 4.0);
f
floating
포인트 가치 로 사용됩니다 ..2
소수점 이하는 소수점 이하 자릿수를 나타냅니다..
대부분의 Java 버전의 경우 다음을 사용할 수 있습니다 DecimalFormat
.-
DecimalFormat formatter = new DecimalFormat("#0.00");
double d = 4.0;
System.out.println(formatter.format(d));
답변
String.format 사용 :
String.format("%.2f", 4.52135);
문서에 따라 :
항상 사용되는 로케일은에서 반환 한 것
Locale.getDefault()
입니다.
답변
String.format을 사용하여 다음을 수행 할 수 있습니다.
double price = 52000;
String.format("$%,.2f", price);
@Vincent의 답변과 다른 쉼표를 확인하십시오.
산출:
$52,000.00
형식화에 대한 좋은 리소스 는 주제에 대한 공식 Java 페이지입니다.
답변
항상 정적 메서드를 사용할 수 printf from System.out
있습니다. 그런 다음 해당 포맷터를 구현합니다. 이렇게하면 다른 예제에서 수행해야하는 힙 공간이 절약됩니다.
전의:
System.out.format("%.4f %n", 4.0);
System.out.printf("%.2f %n", 4.0);
꽤 큰 보너스 인 힙 공간을 절약합니다. 그럼에도 불구하고 저는이 예제가 다른 어떤 답변보다 훨씬 더 관리하기 쉽다고 생각합니다. 특히 대부분의 프로그래머가 C에서 printf 함수를 알고 있기 때문에 (Java는 함수 / 메소드를 약간 변경합니다).
답변
double d = 4.0;
DecimalFormat nf = DecimalFormat.getInstance(Locale.ENGLISH);
System.out.println(nf.format("#.##"));
답변
new DecimalFormat("#0.00").format(4.0d);