통화 기호없이 통화 서식 지정
나 NumberFormat.getCurrencyInstance(myLocale)
에게 주어진 로케일에 대한 사용자 정의 통화 형식을 얻기 위해 사용 하고 있습니다. 그러나 여기에는 항상 원하지 않는 통화 기호가 포함됩니다. 통화 기호없이 지정된 로케일에 적합한 통화 번호 형식을 원합니다.
를하면 format.setCurrencySymbol(null)
예외가 발생합니다 ..
다음은 작동합니다. 약간 못 생겼지 만 계약을 이행합니다.
NumberFormat nf = NumberFormat.getCurrencyInstance();
DecimalFormatSymbols decimalFormatSymbols = ((DecimalFormat) nf).getDecimalFormatSymbols();
decimalFormatSymbols.setCurrencySymbol("");
((DecimalFormat) nf).setDecimalFormatSymbols(decimalFormatSymbols);
System.out.println(nf.format(12345.124).trim());
통화 형식에서 패턴을 가져오고 통화 기호를 제거하고 새 패턴에서 새 형식을 재구성 할 수도 있습니다.
NumberFormat nf = NumberFormat.getCurrencyInstance();
String pattern = ((DecimalFormat) nf).toPattern();
String newPattern = pattern.replace("\u00A4", "").trim();
NumberFormat newFormat = new DecimalFormat(newPattern);
System.out.println(newFormat.format(12345.124));
대신 빈 문자열로 설정하십시오.
DecimalFormat formatter = (DecimalFormat) NumberFormat.getCurrencyInstance(Locale.US);
DecimalFormatSymbols symbols = formatter.getDecimalFormatSymbols();
symbols.setCurrencySymbol(""); // Don't use null.
formatter.setDecimalFormatSymbols(symbols);
System.out.println(formatter.format(12.3456)); // 12.35
주어진 솔루션은 효과가 있었지만 예를 들어 유로에 공백을 남겼습니다. 나는 결국 :
numberFormat.format(myNumber).replaceAll("[^0123456789.,]","");
이렇게하면 통화 나 다른 기호없이 숫자에 대한 통화 형식이 지정됩니다.
아마도 우리는 대체 또는 하위 문자열을 사용하여 형식화 된 문자열의 숫자 부분을 취할 수 있습니다.
NumberFormat fmt = NumberFormat.getCurrencyInstance(Locale.getDefault());
fmt.format(-1989.64).replace(fmt.getCurrency().getSymbol(), "");
//fmt.format(1989.64).substring(1); //this doesn't work for negative number since its format is -$1989.64
DecimalFormat df = new DecimalFormat();
df.setMinimumFractionDigits(2);
String formatted = df.format(num);
에 대해 많은 유형에서 작동 num
하지만 BigDecimal로 통화 를 나타내는 것을 잊지 마십시오 .
num
소수점 뒤에 두 자리 이상이 있을 수있는 상황 에서는 두 자리 df.setMaximumFractionDigits(2)
만 표시하는 데 사용할 수 있지만 응용 프로그램을 실행하는 사람에게 근본적인 문제 만 숨길 수 있습니다.
두 줄 답변
NumberFormat formatCurrency = new NumberFormat.currency(symbol: "");
var currencyConverted = formatCurrency.format(money);
TextView에서
new Text('${formatCurrency.format(money}'),
가 필요 u는 거대한 보고서 나 전망을 가지고 거의 모든 열이 통화 값을 표시 할 때 "기호없이"통화 형식이 기호가 필요하지 않다고하지만, 예 수천 분리 및 소수 쉼표를 들어, 기호는 성가신입니다. 넌 필요해
new DecimalFormat("#,##0.00");
그리고 아닙니다
new DecimalFormat("$#,##0.00");
참조 URL : https://stackoverflow.com/questions/8658205/format-currency-without-currency-symbol
'programing' 카테고리의 다른 글
이 두 파이썬 shebangs의 차이점은 무엇입니까 (0) | 2020.12.31 |
---|---|
Mac OS X에서 마우스 가속 비활성화 (0) | 2020.12.31 |
Spring-Security의 기본 AuthenticationManager는 무엇입니까? (0) | 2020.12.30 |
자바 스크립트 함수, 메소드 등에 세미콜론을 자동으로 추가하도록 webstorm을 설정하려면 어떻게해야합니까? (0) | 2020.12.30 |
SCSS는 인라인 주석을 지원합니까? (0) | 2020.12.30 |