2017-12-27 6 views
2

나는 최대 17 자까지만 표시 할 수있는 계산기로 계산기를 만들고 있으므로 .은 문자로 간주되고 E15은 3 자라고 간주됩니다. 이 사이트에 광범위하게 연구했지만 (중복이 있다면 죄송합니다) 내가 9.999998990000E15 같은 뭔가 9999998990000001 같은 큰 BigDecimal의 말을 강제로 어떻게대형 BigDecimal 숫자를 과학 표기법으로 자르는 방법

을 이런 질문을 ...를 찾을 수 없습니다

.

과학적 표기법을 사용해서는 안되기 때문에 숫자가 16 자 미만으로되어 있다고 항상 말하고 싶지는 않습니다.

이해하기 어려울 경우 기본적으로 핸드 헬드 계산기와 같습니다.

+0

당신이 MathContext'가이 문제를 해결할 것'사용하여 precison를 설정하면? – shash678

답변

2

단지하지 않을 경우 당신은 단순히 숫자가 16 자 미만이면 확인할 수 있습니다 :

private static String formatNumber(BigDecimal bDecimal, int scaleInt) { 
    NumberFormat nFromatter = new DecimalFormat("0.0E0"); 
    nFromatter.setRoundingMode(RoundingMode.HALF_UP); 
    nFromatter.setMinimumFractionDigits(scaleInt); 
    return formatter.format(bDecimal); 
} 

System.out.println(formatNumber(new BigDecimal("0.00001"), 2)); 
// Output will be 1.00E-5 
System.out.println(formatNumber(new BigDecimal("0.00001"), 3)); 
// Output will be 1.000E-5