在Kotlin中除以数组的大小,但我得到的是零,甚至数组的大小等于1或更多。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Kotlin中除以数组的大小,但我得到的是零,甚至数组的大小等于1或更多。相关的知识,希望对你有一定的参考价值。

    fun plusMinus(arr: Array<Int>): Unit {
    var counterPositive = 0
    var counterNegative = 0
    var counterZero = 0
    for(i in 0 until arr.size) {
        if(arr[i] > 0) {
            counterPositive++
        } else if(arr[i] < 0) {
            counterNegative++
        } else {
            counterZero++
        }
    }

    println(counterPositive)
    println(arr.size)
    val a = counterPositive/arr.size
    println(a)
}

我试图解决简单的算法问题,但我面临着这个有趣的事情。所以,我试图找到数组中的正数、负数和零。然后把每个数除以数组的大小。然后打印出来,但是我的结果是0。但是当我调试代码时,我看到 counterPositive 是 4,arr.size 是 5,但是我得到的是 0,为什么?

答案

你得到的是零,因为 counterPositive, counterNegativecounterZero 初始化为 0 所以,该类型 Int 是推断出来的。

由于数组大小是一个 Int两分法 Int 导致 Int.

要解决这个问题,你需要使用一个叫做 FloatDouble.

val a = counterPositive.toFloat() / arr.size

以上是关于在Kotlin中除以数组的大小,但我得到的是零,甚至数组的大小等于1或更多。的主要内容,如果未能解决你的问题,请参考以下文章

如何仅通过提供大小来像在 Java 中一样在 Kotlin 中创建数组?

测试字符串是不是包含字符串数组中的任何内容(kotlin)

运行脚本时,我在 SQL 中得到“除以零”

C语言 获取数组的元素个数

梳排序Comb sort

C如何打印字符串数组中字符串的大小