LoginSignup
15
12

More than 5 years have passed since last update.

JavaScriptとJavaでは整数の割り算結果が違う

Last updated at Posted at 2015-12-14

JavaScriptとJavaで整数の割り算の結果が異なることを知りました。てっきりJavaScriptでも小数未満切り捨てが行われるかと思っていました。

実験用ソースコード

// Javaで整数の割り算
public class Test {
    public static void main(String[] args) {
        System.out.println(54 / 10);
    }
}
// => 5
// JavaScriptで整数の割り算
console.log(54 / 10);
// => 5.4

JavaScriptには整数型がない

Javaではlongやbyteやintなど様々な数値の型がありますが、JavaScriptでは数値の型はnumberのみ。これは小数も扱うそうです。そのため、Javaでは整数型同士の割り算の結果は整数型に格納されるため切り捨てが行われていましたが、JavaScriptでは整数型というのがないため今回のような現象が起きました。

Javaと同じような割り算を行いたいのならMath.floorを使います。

console.log(Math.floor(54 / 10));
// => 5

切り捨てには、ビット演算を使う方法もあります。(通りすがりさん、ありがとうございます。)

54 / 10 | 0
15
12
0

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
15
12