#android #kotlin #rounding #calculator
#Android #kotlin #округление #калькулятор
Вопрос:
У меня EditText ограничен 14 символами. Это работает, чтобы ограничить количество вводимых пользователем данных, но просто отсекает числа, превышающие 14 символов (даже после десятичной дроби) в ответе. Итак, две проблемы, с которыми мне нужна помощь. Как мне сделать так, чтобы ошибки, если значение больше 14 цифр, и всегда округлялись до наилучшего места (например, если сумма равна 164541254.4568727 (17 символов), она будет округляться до 164541254.4569 (14 символов) или 12.9876543210987 округляется до 12.987654321111)
Равный код кнопки (потому что я думаю, что именно здесь мне нужно будет поместить код):
fun equal(view: View) {
secondnum = editText.text.toString()
decpressed = 0
var sum = 0.0
when (op) {
" " -> {
sum = (firstnum.toDouble() secondnum.toDouble())
}
"-" -> {
sum = (firstnum.toDouble() - secondnum.toDouble())
}
"*" -> {
sum = (firstnum.toDouble() * secondnum.toDouble())
}
"/" -> {
if (secondnum == "0") {
Toast.makeText(this, "Can not divide by 0!", Toast.LENGTH_LONG).show()
editText.setText("0")
textView.text = ""
} else {
sum = (firstnum.toDouble() / secondnum.toDouble())
}
}
}
val out = DecimalFormat("#.##########")
out.roundingMode = RoundingMode.HALF_EVEN
editText.setText(out.format(sum))
textView.text = "$firstnum $op $secondnum ="
zero = true
}
Если требуется другой код, пожалуйста, запросите его.
Комментарии:
1. Вы хотите ограничить количество десятичных цифр или общую длину?
2. вы должны создать условие, например, сначала обрезать сумму до 13 символов. затем создайте условие для остальных символов
3. @VSSChaitanyaChavali мои десятичные цифры ограничены DecimalFormat .. но когда целое число больше 1 цифры, оно не округляет десятичное число, оно просто обрезает конец и то же самое с десятичными числами.. если число больше 14 цифр, оно просто обрезает конец
4. @andika_kurniawan можете ли вы объяснить, что вы имеете в виду в ответе?