알다시피,이 사이트에는 수십 가지 주제가 있지만 3 가지 문제에 문제가 있으며 동시에 모든 것을 파악할 수 없습니다.Java BigDecimal 문제 (문자열을 BigDecimal로 - BigDecimal을 String으로)
실제로, 에 대한 계산기를 만들려고합니다. 가끔은 내가 기대 한 것을 얻을 수 없습니다.
내 코드의 일부입니다.
}else if(operator.equals("/")){
if(resultScreen.indexOf("/")==0){
strNum2 = resultScreen.substring(resultScreen.indexOf("/")+1,resultScreen.length());
intNum1 = result;
}else{
strNum1 = resultScreen.substring(0,resultScreen.indexOf("/"));
strNum2 = resultScreen.substring(resultScreen.indexOf("/")+1,resultScreen.length());
intNum1 = new BigDecimal(strNum1);
}
intNum2 = new BigDecimal(strNum2);
if(intNum2.equals(0)){
tvScreen.setText("Err");
resultScreen ="";
}else{
result = intNum1.divide(intNum2);
resultScreen = result.toString();
tvScreen.setText(resultScreen);
resultScreen ="";
}
}
내가 시도하면;
7분의 22
그것은 온다;
3
나는 어떻게 해결할 수 있습니까?
그런데 십진수의 정확한 값을 유지하고 싶습니다.
나누기에 대한 javadoc을 읽으십시오. https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html (https://ideone.com/Fd197W 참조) –
I 그것의 사본을 생각하십시오. http://stackoverflow.com/questions/4591206/arithmeticexception-non-terminating-decimal-expansion-no-exact-representable – msagala25