Java 我要怎么转到最近的十点?

Java 我要怎么转到最近的十点?,java,rounding,Java,Rounding,如果没有if语句,如何将数字四舍五入到最接近的10?例如,98到100 int num = 87; double t; double d = 1.0 * num; // d = 87.0 t = d/100; System.out.println(t); 您可以使用Math.round(num/10.0)*10 answer = ((num+5)/10)*10; // if num is int 其中num是int,要想了解更多信息,请阅读此问题 编辑: 如果num是double则按照@Pe

如果没有if语句,如何将数字四舍五入到最接近的10?例如,98到100

int num = 87;
double t;
double d = 1.0 * num; // d = 87.0
t = d/100;
System.out.println(t);

您可以使用
Math.round(num/10.0)*10

answer = ((num+5)/10)*10; // if num is int
其中
num
int
,要想了解更多信息,请阅读此问题
编辑:

如果
num
double
则按照@PeterLawrey

的建议,将类型转换添加到表达式
(long)((num+5)/10)
,如果除以10d或10.0,num可以是任何(原始)数字。True,编辑@彼得:你确定吗?如果
num
为14.0,则该值将计算为20。我可能有一个高级时刻,但上次检查时,(14.0+5)/10为1.9,四舍五入时变为2.0。请记住,
Math.round
实现德语舍入。将int转换为int是多余的,如果已经是long,则更糟。@sinsuren如果是double,则需要转换,但如果可能,则可以使用long。这是OP问题的整数。@PeterLawrey我已经根据你的建议更改了。感谢您提高了回答质量。重复/类似: