1
저는 Java를 배우고 있으며 다른 Java 유틸리티 및 숫자 형식 지정에 대한 섹션을 가르쳐 왔습니다. 그러나 내 서식은 책에서 말하는 것과 동일하게 작동하지 않습니다. 내 코드는 다음과 같습니다DecimalFormat이 Java에서 적절한 출력을 제공하지 않습니다.
책의 예에서import java.text.NumberFormat;
import java.text.DecimalFormat;
public class Lessons {
public static void main(String[] args) {
double d = 7.1348759272948202842847;
System.out.printf("%15e %n", d);
NumberFormat cashFormat = NumberFormat.getCurrencyInstance();
System.out.println(cashFormat.format(d));
double e = 14.9;
double f = 16.09805938020001;
double g = 12346;
DecimalFormat Dec_Format = new DecimalFormat("##0.##E0");
System.out.println(Dec_Format.format(e));
System.out.println(Dec_Format.format(f));
System.out.println(Dec_Format.format(g));
}
, 그것은 12345 ". ## 0 ## E0" "12.3E3"입니다으로 포맷 말한다. 받은 출력은 "12.345E3"입니다.
내가받는 출력은 이해할 만하지만 책과 일치하지 않기 때문에 책에 오류가 있는지 또는 내가 잘못하고 있는지 확실하지 않습니다.
정상 출력입니까?
내가 참조. 나는 현금 서식 부분을 정확하게 이해했다. 그러나 책이 보여준 방식 때문에 과학 표기법은별로 의미가 없었다. 귀하의 예제를 올바르게 이해하고 있다면 Java의 전자 표기법은 지정하지 않아도 소수점 한자리로 기본 설정되므로 ##을 추가하면 끝에 두 개의 숫자가 추가됩니다 (사용 가능한 경우). (예 : ## 0.E0 = 12.3, ## 0. ## E0 = 12.345E3) 책에서 구두/형식을 비교하는 것이 훨씬 의미가 있습니다. – AdamWestPhD
그래서? 무슨 뜻입니까 내 솔루션이 잘못되었습니다 @AdamWestPhD :) –
그것은 작동합니다 :) 도움을 주셔서 감사합니다 – AdamWestPhD