如何从Kotlin中删除数字的小数部分?

时间:2019-09-04 09:38:05

标签: android kotlin

我正在为天气应用程序使用OpenWeatherMaps API,但在某些城市中显示的是小数,如何从中删除小数部分?

override fun onPostExecute(result: String?) {
            super.onPostExecute(result)
            try {
                val jsonObj = JSONObject(result)
                val main = jsonObj.getJSONObject("main")
                val temp = main.getString("temp")+"°C"
                findViewById<TextView>(R.id.temp).text = temp

6 个答案:

答案 0 :(得分:2)

  

toInt()是您问题的解决方案

val jsonObj = JSONObject(result)
                val main = jsonObj.getJSONObject("main")
                val temp =  +"${main.getString("temp").toDouble().toInt()}°C"
                findViewById<TextView>(R.id.temp).text = temp

答案 1 :(得分:2)

如果您想要点之前的所有内容,请输入substringBefore()

val temp = main.getString("temp").substringBefore(".") + "°C"

答案 2 :(得分:0)

看到您正在使用getString()并假设从服务器发送的数据像“ 31.23”,我想到的第一件事就是使用点作为定界符分割字符串,并使用第一个值:

val temp = main.getString("temp")split(".")[0] +"°C"

答案 3 :(得分:0)

使用getInt而不是getString

val temp = main.getInt("temp") + "°C"

答案 4 :(得分:0)

尝试

  val temp = String.format("%.0f",main.getString("temp")) +"°C"

答案 5 :(得分:0)

如果您想删除字符串中数字的小数部分,请尝试类似

    val df = DecimalFormat("#")
    println("Foobar: ${df.format(100.10)}")

结果:

Foobar:100