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

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

実験用ソースコード

Java

public class Test {
    public static void main(String[] args) {
        System.out.println(54 / 10);
    }
}
5

JavaScript

<script>
    console.log(54 / 10);
</script>
5.4

JavaScriptには整数型がない

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

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

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