2012-03-19 3 views
2

가능한 중복 :
Round a double to 2 significant figures after decimal point반올림 더블 - 최소 소수 자릿수

아래 코드는

는 35.0로 결과
import java.text.DecimalFormat; 

public class Test { 
public static void main(String[] args){ 

    double x = roundTwoDecimals(35.0000); 
    System.out.println(x); 
} 

public static double roundTwoDecimals(double d) { 
    DecimalFormat twoDForm = new DecimalFormat("#.00"); 
    twoDForm.setMinimumFractionDigits(2); 
    return Double.valueOf(twoDForm.format(d)); 
} 
} 

작동합니다. 최소 소수 자릿수를 강제하는 방법은 무엇입니까? 내가 원하는 결과가 35.00

+5

뒤의 0의 수는'double'의 속성이 아니며'String' 표현의 속성입니다. –

+0

http://stackoverflow.com/a/7593617/446885 – Shahzeb

+0

String으로 변환하지 않고 수행하는 방법은 무엇입니까? –

답변

3

roundTwoDecimals()의 반환 값이 double이므로 사용자가 예상 한 것처럼 작동하지 않습니다.이 값은 기능에서 수행하는 형식을 삭제합니다. 원하는 것을 얻으려면 String 표현을 roundTwoDecimals()에서 반환하는 것이 좋습니다.

0

서식이 지정된 번호를 double으로 다시 변환하면 모든 서식 변경 사항이 적용되지 않습니다. 함수를 다음으로 변경하십시오.

public static String roundTwoDecimals(double d) { 
    DecimalFormat twoDForm = new DecimalFormat("#.00"); 
    return twoDForm.format(d); 
} 

EDIT : "# .00"이 맞습니다.

+0

사실,'#. ##'은 소수점 자리를 선택적으로 만들 것이고, 이것은 그가 원하는 것 같지 않습니다. 'String' 리턴에 대한 조언은 관련 부분입니다. – VeeArr

관련 문제