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

问题描述 投票:0回答: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,为什么?

arrays kotlin
1个回答
3
投票

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

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

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

val a = counterPositive.toFloat() / arr.size
© www.soinside.com 2019 - 2024. All rights reserved.