NumberFormat 포맷 처리 숫자

6030 단어 자바
1. 공식 API 문서
public abstract class NumberFormat
extends Format

NumberFormat 은 추상 적 인 클래스 로 Format 에서 계승 합 니 다.NumberFormat  is the abstract base class for all number formats. This class provides the interface for formatting and parsing numbers.  NumberFormat  also provides methods for determining which locales have number formats, and what their names are.
NumberFormat 은 추상 적 인 디지털 포맷 클래스 입 니 다.이러한 형식 과 숫자 를 해석 하 는 인터페이스, NumberFormat 도 어떤 언어 환경 이 수치 형식 을 가지 고 있 는 지, 그리고 그들의 이름 이 무엇 인지 확인 하 는 방법 을 제공 합 니 다.NumberFormat  helps you to format and parse numbers for any locale. Your code can be completely independent of the locale conventions for decimal points, thousands-separators, or even the particular decimal digits used, or whether the number format is even decimal.
NumberFormat 은 모든 언어의 숫자 를 포맷 하고 해석 하 는 데 도움 을 줄 수 있 으 며, 코드 가 소수점, 천 자리 구분자, 심지어 특정한 소수 자릿수 의 언어 환경 에 완전히 독립 할 수 있 도록 약속 할 수 있 으 며, 수치 형식 이 짝수 인지 와 는 무관 합 니 다.
2. Number 의 인 스 턴 스 가 져 오기
NumberFormat format = NumberFormat.getInstance();
테스트 코드
public class TestNumberFormat {     public static void main(String[] args) {         testNumberFormatGetInstance();         System.out.println("----------testNumberFormatDigits------------");         testNumberFormatDigits();         System.out.println("-----------testNumberFormatSetRoundingMode-----------");         testNumberFormatSetRoundingMode();         System.out.println("-----------testNumberFormatParse-----------");         testNumberFormatParse();     }
    private static void testNumberFormatGetInstance() {         double d = 23323.3323232323;         System. out. println (NumberFormat. getInstance (). format (d);//23, 323.332. 현재 결 성 된 언어 환경의 [결 성 된 수치] 형식 을 되 돌려 줍 니 다.        System. out. println (NumberFormat. getCurrency Instance (). format (d);//¥ 23, 323.33. 현재 언어 환경 이 부족 한 [화폐] 형식 을 되 돌려 줍 니 다.        System. out. println (NumberFormat. getNumberInstance (). format (d));//23, 323.332. 현재 결 성 된 언어 환경의 [공통 수치] 형식 을 되 돌려 줍 니 다.        System. out. println (NumberFormat. getIntegerInstance (). format (d);/23, 323. 현재 결 성 된 언어 환경의 [정수] 형식 을 되 돌려 줍 니 다.        System. out. println (NumberFormat. getPercent Instance (). format (d));//2, 332, 333%. 현재 결 성 된 언어 환경의 [백분율] 형식 을 되 돌려 줍 니 다.    }
    private static void testNumberFormatDigits() {         NumberFormat format = NumberFormat.getInstance();         format. setParseIntegerOnly (true);/설정 수 를 정수 로 만 해석 해 야 하 는 지 여부 입 니 다. 이 방법 은 포맷 과 무관 하 게 해석 에 만 영향 을 줍 니 다.        format. set MinimumFractionDigits (2);/수 치 를 설정 하 는 [소수 부분] 에서 허용 하 는 최소 자릿수 입 니 다. 이 몇 가지 방법 은 포맷 에 만 영향 을 줍 니 다. 해석 과 는 무관 합 니 다.        format. setMaximumFractionDigits (3);/수 치 를 설정 하 는 [소수 부분] 허용 하 는 최대 자릿수        format. set MinimumInteger Digits (1);/수 치 를 설정 하 는 [정수 부분] 허용 하 는 최소 자릿수        format. setMaximumInteger Digits (5);/수 치 를 설정 하 는 [정수 부분] 허용 하 는 최대 자릿수
        System.out.println(format.format(123.1234));//123.123         System.out.println(format.format(123.1000));//123.10         System.out.println(format.format(123456789.12345));//56,789.123     }
    private static void testNumberFormatSetRoundingMode() {         NumberFormat format = NumberFormat.getInstance();         format. setMaximumFractionDigits (0);/수 치 를 설정 하 는 [소수 부분] 허용 하 는 최대 자릿수        System. out. println ("기본 모드 는:"+ format. getRoundingMode (). name ());/HALF EVEN        System. out. println (format. format (5.6);//6. 5 이상 은 홀수 든 짝수 든 5 를 반올림 합 니 다.        System. out. println (format. format (5.4);//5 이하 홀수 든 짝수 든 5 는 버 립 니 다.        System. out. println (format. format (1.5);/2. 5 일 때 앞 자리 가 홀수 라면 5 를 반올림 합 니 다.        System. out. println (format. format (2.5);/2. 5 일 때 앞 자리 가 짝수 라면 5 는 버 립 니 다.                 format. setRoundingMode (RoundingMode. HALF UP);//반올림 입 니 다. 이 방법 은 포맷 에 만 영향 을 줍 니 다. 해석 과 는 무관 합 니 다.        System. out. println ("현재 모드 는:"+ format. getRoundingMode (). name ());/HALF UP        System.out.println(format.format(5.6));//6         System.out.println(format.format(5.4));//5         System.out.println(format.format(1.5));//2         System.out.println(format.format(2.5));//3     }
    private static void testNumberFormatParse() {         NumberFormat format = NumberFormat.getInstance();         format. setParseIntegerOnly (false);/설정 수 를 정수 로 만 해석 해 야 하 는 지 여부 입 니 다. 이 방법 은 포맷 과 무관 하 게 해석 에 만 영향 을 줍 니 다.        format. set 최소 분수 Digits (2);/이 몇 가지 방법 은 포맷 에 만 영향 을 주 며 해석 과 무관 합 니 다.        ParsePosition position = new ParsePosition(2);
        try {             Number number = format. parse ("00123.10050100 엔 드 에 영향 을 받 지 않 습 니 다");/문자열 을 처리 할 수 없 는 [시작] 은 ParseException 을 던 집 니 다.            Number number 2 = format. parse ("시작 00123.10050100 끝 에 영향 을 받 지 않 습 니 다", position);/문자열 을 해석 할 때 position. getIndex () 에서 부터 해석 합 니 다.
            System.out.println(number.floatValue());//123.1005             System.out.println(number.intValue());//123             System.out.println(number2.doubleValue());//123.100501             System. out. println (position. getIndex ();/16. 해석 하기 전에 시작 부분 문자 의 색인 을 해석 합 니 다. 해석 한 후에 분 석 된 마지막 문자 의 색인 을 대표 합 니 다.            System. out. println (position. getErrorIndex ();//- 1. 오류 가 발생 했 을 때의 색인 을 가 져 옵 니 다. 오류 색인 이 설정 되 어 있 지 않 으 면 - 1 입 니 다.
            position. setIndex (1);//ParsePosition 을 다시 사용 하려 면 Index 를 다시 설정 해 야 합 니 다.            System. out. println (format. parse ("12.345678 마리 해석", position). floatValue ());//2.345678        } catch (ParseException e) {             e.printStackTrace();         }     } }
테스트 참조:https://www.cnblogs.com/baiqiantao/p/6738842.html
    public static void main(String[] args) throws Exception {
           NumberFormat format = new DecimalFormat("###0000");
          String format2 = format.format(123);//0123  숫자 가 누적 되 었 을 때 숫자 앞의 0 을 저장 하여 일부 파일 번호 등에 서 처리 하기에 편리 하 다.
}
 

좋은 웹페이지 즐겨찾기