Java에서 소수점 구분 기호 ( ".")
현재 다음 코드를 사용하여 이중을 인쇄합니다.
return String.format("%.2f", someDouble);
이것은 Java가 내 로케일의 소수점 구분 기호 (쉼표)를 사용하고 점을 사용하고 싶은 점을 제외하면 잘 작동합니다. 이 작업을 수행하는 쉬운 방법이 있습니까?
String.format로케일을 지정할 수 있는 오버로드를 사용하십시오 .
return String.format(Locale.ROOT, "%.2f", someDouble);
여기에있는 것처럼 숫자 형식 만 지정하는 경우 사용하는 NumberFormat것이 더 적절할 것입니다. 그러나의 나머지 서식 기능 String.format이 필요한 경우 제대로 작동합니다.
보다 과감한 해결책은 main () 초기에 로케일을 설정하는 것입니다.
처럼:
Locale.setDefault(new Locale("en", "US"));
추가 로케일을 java.lang.String.format 및 java.io.PrintStream.printf (예 : System.out.printf ())에 전달할 수 있습니다.
import java.util.Locale;
public class PrintfLocales {
public static void main(String args[]) {
System.out.printf("%.2f: Default locale\n", 3.1415926535);
System.out.printf(Locale.GERMANY, "%.2f: Germany locale\n", 3.1415926535);
System.out.printf(Locale.US, "%.2f: US locale\n", 3.1415926535);
}
}
결과는 다음과 같습니다 (내 PC에서).
$ java PrintfLocales
3.14: Default locale
3,14: Germany locale
3.14: US locale
Java API의 String.format 을 참조하십시오 .
너무 늦었지만 여기에 언급 된 다른 것은 NumberFormat(및 하위 클래스 DecimalFormat) 의 샘플 사용입니다.
public static String format(double num) {
DecimalFormatSymbols decimalSymbols = DecimalFormatSymbols.getInstance();
decimalSymbols.setDecimalSeparator('.');
return new DecimalFormat("0.00", decimalSymbols).format(num);
}
NumberFormat 및 DecimalFormat을 사용할 수 있습니다.
Java Tutorials LocaleSpecific Formatting 에서이 링크를 살펴보십시오.
Locale-Sensitive Formatting이라는 섹션이 필요합니다.
난 .. 같은 문제를 가지고 55.1로 변환 55,10. 내 빠른 (더러운?) 수정은 다음과 같습니다.
String.format("%.2f", value).replaceAll(",",".");
참고 URL : https://stackoverflow.com/questions/5236056/force-point-as-decimal-separator-in-java
'developer tip' 카테고리의 다른 글
| sed가 \ t를 탭으로 인식하지 않는 이유는 무엇입니까? (0) | 2020.09.03 |
|---|---|
| IP 주소에 사용할 MySQL 데이터 유형은 무엇입니까? (0) | 2020.09.03 |
| Excel VBA에서 "! ="에 해당하는 것은 무엇입니까? (0) | 2020.09.03 |
| Windows의 Maven 2에서 Java 힙 공간 설정 (0) | 2020.09.03 |
| 자바의 배열 길이 (0) | 2020.09.03 |