Android 如何防止数字进入我的文本视图中的科学符号?
我正在做一个计算器。当我添加太多字符时,显示器会自动获得这种科学符号 我如何防止这种情况Android 如何防止数字进入我的文本视图中的科学符号?,android,kotlin,Android,Kotlin,我正在做一个计算器。当我添加太多字符时,显示器会自动获得这种科学符号 我如何防止这种情况 if ((answer == null)) { answer = 0.0 } else { answer = (answer * 10) + digit } answerEditText.setText(checkLast2Digits(answer.toDouble().toString())) } // removes the .0 fr
if ((answer == null)) {
answer = 0.0
} else {
answer = (answer * 10) + digit
}
answerEditText.setText(checkLast2Digits(answer.toDouble().toString()))
}
// removes the .0 from the end of the string
private fun checkLast2Digits(answerText: String): String {
val checkLast2Digits = answerText.takeLast(2)
if (checkLast2Digits.equals(".0")) {
return answerText.toString().take(answerText.toString().length - 2)
} else {
return answerText.toString()
}
}
您可以使用
.toBigDecimal().toPlainString()
来避免使用科学符号。这还会删除小数点后的尾随零,因此您也不需要其他函数
answerEditText.setText(answer.toBigDecimal().toPlainString())
您似乎在这里使用了
double
,这是一种不适合计算器的格式:精度有限和舍入误差是两个原因。您应该使用任意精度类型,如他的答案中建议的@Tenfour04。