android - 如何防止数字在我的 TextView 中转为科学记数法?

标签 android kotlin

enter image description here

我正在制作一个计算器。当我添加太多字符时,显示屏会自动获取此科学记数法。

如何防止这种情况发生?

    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())

关于android - 如何防止数字在我的 TextView 中转为科学记数法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62351507/

相关文章:

java - Kotlin + Spring Boot,找不到 beans

kotlin - 有什么区别!!和 ?在 Kotlin ?

java - 将一个 int 乘以 30、31、32 - 这些真的被编译器优化了吗? (有效的java这么说)

kotlin - Kotlin:如何在扩展名中调用具有相同名称的方法?

android - 是否可以在 Android 版本 2 或更低版本上使用小于 8px 的 css 字体大小

java - 尝试将文件写入内部数据时不断出现 NullPointerException

android - 升级okhttp后出现BootstrapMethodError

android - 为什么折叠 ActionView() 不关闭 SearchView

android - 在 Android 中获取 "satellites in view"和 "satellites in use"计数

android - 蓝牙适配器禁用并重新启用后如何让 Android 连接?