"."문자 다음에 정확히 2 자리 숫자로 문자열을 가져 오는 경우. 내가 좋아하는 뭔가를 할 수 있습니다2 자리 숫자로 인쇄하지만 6 자리 숫자로 끝나는 인쇄 번호
DecimalFormat df = (DecimalFormat)DecimalFormat.getInstance(Locale.US);
df.applyPattern("0.00");
df.setRoundingMode(RoundingMode.HALF_UP);
String output = df.format(value);
내가 같은 숫자 828.054999999702d
이있는 경우, 다음 자리가 "4"를 말한다 이후 지금까지 올바른 무엇 828.05로 포맷하고는 아무것도 그 내림합니다 .
그러나 더 많은 자릿수 정밀도를 보존해야한다면 어떻게 보이게할까요?
double prettyValue = value;
prettyValue = Math.round(prettyValue * 1000000d)/1000000d;
prettyValue = Math.round(prettyValue * 100000d)/100000d;
prettyValue = Math.round(prettyValue * 10000d)/10000d;
prettyValue = Math.round(prettyValue * 1000d)/1000d;
prettyValue = Math.round(prettyValue * 100d)/100d;
DecimalFormat df = (DecimalFormat)DecimalFormat.getInstance(Locale.US);
df.applyPattern("0.00");
df.setRoundingMode(RoundingMode.HALF_UP);
String output = df.format(prettyValue);
이 제 3 회 6, 5, 4를 반올림하고 다음 두 번째 장소를하는 경우, NumberFormat 아무것도 할 필요가 없습니다 있었으나 결국이 나머지를 인쇄 :
은 내가 빠르게 생성하면이 작업 코드 자릿수는 0이됩니다.
하지만 이미 알지 못하는 즉시 사용 가능한 반올림이 있어야한다고 생각합니다. BigDecimal을 사용하여 동일한 작업을 수행하면 나와 동일한 문제가 발생합니다.
내가 원하는 결과는 828.054999999702
을 반올림하여 828.06
입니다.
출력을 포맷 할 때 반올림 해 보라. – Thomas
* "더 많은 자릿수의 정밀도를 유지해야한다면 무엇을 표시하고 싶지 않으십니까?"* 의미는 무엇입니까? 디스플레이의 형식 지정은 정밀도 유지와 관련이 있습니까? 형식이 지정된 텍스트가 보존 대상인 경우 보존에 필요한 모든 숫자를 표시해야합니다. 그렇지 않은 경우 값이 보존되면 문제는 무엇입니까? 나는 혼란스러워. – Andreas