float f =123.4567890f;//float은 정밀도가 7자리이므로 소수점을 포함한 7자리까지만 의미있고 그 이하로는 부정확한 값이다.System.out.printf("%f", f);//123.456787. 소수점아래 6자리까지 보여준다.System.out.printf("%e", f);//1.234568e+02. '8'은 반올림 되었고, e+02 = 10^2이다.
간략한 형식(%g)
System.out.prinf("%g",123.456789);//123.457 소수점을 포함하여 7자리로 보여준다.%f처럼System.out.prinf("%g",0.0000001);//1.00000e-8 지수로 표현하는 게 더 간략해서 %e처럼 지수로 표현.
더 많은 formatter를 확인하려면 Java API 문서에서 Formatter를 검색해서 참고하면 된다.
prinln은 자동 줄바꿈이 되지만, printf는 %n이나 \n 같은 개행문자를 넣어줘야한다. %n은 OS에 상관없이 적용되므로 %n을 사용하도록 하는 것이 좋다.
//정수 System.out.printf("[%5d]%n",10);//_ _ _ 1 0;오른쪽 정렬 System.out.printf("[%-5d]%n",10);//1 0 _ _ ;왼쪽 정렬 System.out.printf("[%05d]%n",10);//00010출력 System.out.printf("[%5d]%n",1234567);//1234567출력. 5자리로 지정했지만 넘기 때문에 그냥 다 출력된다.//실수 double d =1.23456789;System.out.printf("%f%n",d);//1.234568System.out.printf("%14.10f%n",d);//소수점포함 전체 14자리, 소수점 아래 10자리.정수부분은 공백문자, 소수점 부분은 0으로 채워진다.System.out.printf("%.6f%n",d);//소수점 아래 6자리까지표현 //문자열 System.out.printf("[%s]%n","www.codechobo.com");System.out.printf("[%20s]%n","www.codechobo.com");//20자리 지정 System.out.printf("[%-20s]%n","www.codechobo.com");//20자리 지정, 왼쪽 정렬 System.out.printf("[%.10s]%n","www.codechobo.com");//10자리까지만 잘라서 출력 가능