如何在不使用"round函数"或"if and else语句"的情况下将数字舍入到java中最接近的整数?

Cou*_*own -1 java

我必须将数字舍入到最接近的整数.所以4.3将四舍五入为4,4.7将四舍五入为5.中间带有小数的数字(如4.5)也将四舍五入为5.我必须在不使用和"数学"的情况下进行舍入.函数或"if和else语句".

tbo*_*odt 17

答案很简单.在数字上加0.5,然后将其转换为int.像这样:

int rounded = (int) (unrounded + 0.5);
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为如果小数部分小于0.5,则整数部分保持不变,截断给出正确的结果.如果小数部分大于0.5,则整数部分递增,并且截断再次给出我们想要的内容.

  • 虽然这是正确的,但并不鼓励OP进行自学. (2认同)