Я знаю, что на сайте есть такие темы, как это на сайте, но у меня проблемы с 3 проблемами, и я не мог разобраться с ними в одно и то же время.Java BigDecimal Problems (String to BigDecimal - BigDecimal to String)
На самом деле, я пытаюсь сделать калькулятор для Android, но иногда я не могу получить то, что ожидаю.
Часть моего кода;
}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 ="";
}
}
Когда я пытаюсь;
22/7
Он приходит;
Как я могу исправить это?
Кстати, я хочу сохранить точное значение десятичного числа.
Прочитайте javadoc о divide: 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