3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

java kotlin IntとIntの除算(割り算)にご注意

Posted at

なんでこんな簡単なことにハマったのでしょう?
私と同じようにハマって時間を無駄にする方がいないように備忘録

下記は当然の如く0.25と出ると思っていましたが...

        var rate: Double = 0.0
        rate = 1 / 4
        Log.v("TEST:", "rate:${rate}")

下記のようなコンパイルエラーがでる。

Type mismatch: inferred type is Int but Double was expected

google翻訳様:「型が一致しません:推定型はIntですがDoubleが必要です」

そんなことわかっておるワイ!!!

ん? あっ Σ(゚д゚;) ,,,, そういう事か。
IntとIntの計算なので計算結果の型の判定がIntになっていたんですね...
俺よ、なぜ気づかなかった。。。

ということで解決策。どっちか、もしくは両方をDoubleに合わせてやればよい。

        val num1 = 1.toDouble()
        val num2 = 4.toDouble()

        val aaa = num1 / num2

        Log.v("TEST:", "rate = ${aaa}")
V/TEST:: rate = 0.25

はい。想定どおりの結果が返ってきました。
自分の頭の悪さに涙が止まらんです。

補足

ちなみに...

        val aaa = (1/4).toDouble()
        Log.v("TEST:", "rate = ${aaa}")
V/TEST:: rate = 0.0

こうすると 計算結果がIntで来てそれをDoubleに変換しているみたいになるから
想定する結果が返ってきません。
10 / 4 とかだと 2.0 になるから注意。

では、よい kotlin 生活を!

3
3
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?