PythonとJavaは、それぞれ異なる振る舞いをするround
関数を持っています。この記事では、それらの違いと、それぞれの言語でのround
関数の使用方法について説明します。
Pythonのround関数
Pythonのround
関数は、四捨五入を行います。しかし、負の数に対しては、0から遠い方向に丸めます。例えば、round(-0.5)
は-1を返します。
print(round(0.0)) # 0.0
print(round(0.5)) # 1.0
print(round(-0.5)) # -1.0
Javaのround関数
一方、Javaのround
関数は、常に0から遠い方向に丸めます。つまり、Math.round(-0.5)
は0を返します。
System.out.println(Math.round(0.0)); // 0
System.out.println(Math.round(0.5)); // 1
System.out.println(Math.round(-0.5)); // 0
Pythonスタイルの丸めをJavaで実現する方法
Pythonスタイルの丸めをJavaで実現するには、自分で関数を作成する必要があります。以下にその一例を示します。
public static long symmetricRound(double d) {
return d < 0 ? -Math.round(-d) : Math.round(d);
}
この関数は、数値が負の場合はその絶対値を丸めてから符号を反転させ、数値が正または0の場合はそのまま丸めます。
以上がPythonとJavaのround
関数の違いと、それぞれの使用方法になります。これらの知識を活用して、より効果的なコーディングを行いましょう。