как добавить калькулятор процентов Kotlin - PullRequest
1 голос
/ 20 апреля 2020

Я новичок в программировании, начал изучать kotlin сразу, я не понимаю, как добавить проценты к проценту кучи калькулятора, который я создал, но он не работает правильно, я не мог найти, как добавить проценты, они все пишут иначе, но у меня это не работает Надеюсь на вашу помощь извиняюсь, если уже был топи c

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)


        tvZero.setOnClickListener { setTextFields("0") }
        tvOne.setOnClickListener { setTextFields("1") }
        tvTwo.setOnClickListener { setTextFields("2") }
        tvThree.setOnClickListener { setTextFields("3") }
        tvFour.setOnClickListener { setTextFields("4") }
        tvFive.setOnClickListener { setTextFields("5") }
        tvSix.setOnClickListener { setTextFields("6") }
        tvSeven.setOnClickListener { setTextFields("7") }
        tvEight.setOnClickListener { setTextFields("8") }
        tvNine.setOnClickListener { setTextFields("9") }
        tvDot.setOnClickListener { setTextFields(".") }

        tvPlus.setOnClickListener { setTextFields("+") }
        tvMinus.setOnClickListener { setTextFields("-") }
        tvMul.setOnClickListener { setTextFields("*") }
        tvDivide.setOnClickListener { setTextFields("/") }
        tvOpen.setOnClickListener { setTextFields("(") }
        tvClose.setOnClickListener { setTextFields(")") }
        tvPercent.setOnClickListener { setTextFields("%") }

        tvClear.setOnClickListener {
            math_operation.text = ""
            result_text.text = ""
        }

        tvBack.setOnClickListener {
            val str = math_operation.text.toString()
            if (str.isNotEmpty()) {
            math_operation.text = str.substring(0, str.length - 1)

            }
            result_text.text = ""
        }
        tvEquals.setOnClickListener {
            try {

                val ex = ExpressionBuilder(math_operation.text.toString()).build()
                val result = ex.evaluate()

                val longRes = result.toLong()
                if (result == longRes.toDouble())
                    result_text.text = longRes.toString()
                else
                    result_text.text = result.toString()

            } catch (e:Exception) {
                Log.d("error", "message: ${e.message}")

            }
        }

    }
            fun setTextFields(str: String) {
                if (result_text.text != "") {
                    math_operation.text = result_text.text
                    result_text.text = ""
                }

                math_operation.append(str)


            }
        }



...