本日は四捨五入のメソッドroundの問題です!

問題 - 四捨五入「難易度:中」

Javaの数学的な処理を集めたMathクラスの中に、roundという渡された値を四捨五入して整数を返すメソッドがあります。

たとえば、次のJavaプログラムのようにfloat型の変数aに小数の「4.5」を代入し、それをMath.roundメソッドに渡すと、変数bには小数点第1位が四捨五入された整数の「5」が入ります。

float a = 4.5f;
int b = Math.round(a);

さて、次のJavaプログラムのようにマイナスの小数「-4.5」がMath.roundメソッドに渡された場合、変数dに入る値は何でしょうか?

float c = -4.5f;
int d = Math.round(c);

本日は四捨五入のメソッドroundの問題です!

問題 - 四捨五入「難易度:中」

Javaの数学的な処理を集めたMathクラスの中に、roundという渡された値を四捨五入して整数を返すメソッドがあります。

たとえば、次のJavaプログラムのようにfloat型の変数aに小数の「4.5」を代入し、それをMath.roundメソッドに渡すと、変数bには小数点第1位が四捨五入された整数の「5」が入ります。

float a = 4.5f;
int b = Math.round(a);

さて、次のJavaプログラムのようにマイナスの小数「-4.5」がMath.roundメソッドに渡された場合、変数dに入る値は何でしょうか?

float c = -4.5f;
int d = Math.round(c);

解答

変数dの値は「-4」。

解説

JavaのMath.roundメソッドは渡された値の小数部分が0.5より小さければ、小さい側の整数、0.5より大きい場合は大きい側の整数を返します。そこで、Math.Round関数に「-4.5」を渡すと「-4.5」より大きい側の整数である「-4」が返されます。

数学的な処理ではなく、会計処理のように絶対値を四捨五入して「-5」を返したい場合は、BigDecimalクラスのsetScaleメソッドを使用します。

ではまた来週!