【问题标题】:Bmi calculator kotlinBmi计算器科特林
【发布时间】:2019-12-03 22:20:25
【问题描述】:

我正在学习android studio和kotlin。我没有使用 java 的经验,所以在学习 kotlin 时,我只是借鉴了我从 C# 编程中获得的经验。我正在尝试制作一个简单的脚本,该脚本从身高和体重的文本字段中获取输入并将它们放入一个公式中,该公式给出了 BMI 分数,然后打印出来,当我通过简单地乘以或添加高度来测试脚本时一切正常和重量一起测试,所以我知道一般代码有效。我怎样才能解决我的问题 atm 输出总是 0 我已经搞砸了使用更大的值,而且它似乎最终不会乘以 10,000 任何修复家伙?谢谢。


    package com.example.test

    import androidx.appcompat.app.AppCompatActivity
    import android.os.Bundle
    import android.widget.Button
    import android.widget.EditText
    import android.widget.TextView

    class MainActivity : AppCompatActivity() {

        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
            val btnChangeText = findViewById(R.id.btn_change_text) as Button
            val tvBMI = findViewById(R.id.output_BMI) as TextView
            val weight = findViewById(R.id.input_weight) as EditText
            val height = findViewById(R.id.input_height) as EditText

            btnChangeText.setOnClickListener {
               val bmiWeight = weight.text.toString().toInt()
               val bmiHeight = height.text.toString().toInt()
               val bmiCalc =  bmiWeight /  bmiHeight /  bmiHeight * 10000
                tvBMI.text = bmiCalc.toString()
            }

        }

    }

【问题讨论】:

    标签: kotlin


    【解决方案1】:

    看起来 bmiWeight 和 bmiHeight 是整数。整数除法会导致余数被截断,如果分母较大,则简单地为 0。

    试试:

    bmiWeight.toDouble() / bmiHeight / bmiHeight * 10000
    

    或者将 bmiHeight 和 bmiWeight 作为一个 double 开始

    val bmiWeight = weight.text.toString().toDouble()
    

    【讨论】:

    • 出色的工作是一种享受。所以我最后没有得到一个整数我最后把输出文本改回了一个整数谢谢。 tvBMI.text = bmiCalc.toInt().toString()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-11
    • 2014-10-27
    • 1970-01-01
    • 2018-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多