Java 如何在顶部从双精度到整数舍入

Java 如何在顶部从双精度到整数舍入,java,casting,Java,Casting,我有密码: double dd=2.99; int ii=(int)(dd);//ii==2 我想要三个在二。有什么快速而简单的方法吗?你想要的,或者-如果你总是想总结一下-Math.ceil()。类似地,还有一个Math.floor()始终向下取整 由于非常挑剔,您应该注意Math.round(double)返回一个长的,因此如果您想将结果存储在int(对于真正大的double)中,可能会丢失精度。使用Math.ceil(dd)。它将把任何数字四舍五入到最接近的整数。同样地,Math.flo

我有密码:

double dd=2.99;
int ii=(int)(dd);//ii==2
我想要三个在二。有什么快速而简单的方法吗?

你想要的,或者-如果你总是想总结一下-
Math.ceil()
。类似地,还有一个
Math.floor()
始终向下取整

由于非常挑剔,您应该注意
Math.round(double)
返回一个
长的
,因此如果您想将结果存储在
int
(对于真正大的
double
)中,可能会丢失精度。

使用
Math.ceil(dd)
。它将把任何数字四舍五入到最接近的整数。同样地,
Math.floor(dd)
将向下取整,而
Math.round(dd)
将向下/向上取整,具体取决于哪个更接近


作为记录,
Math
类包含大量有用的数学方法。

使用java.lang.Math类的round方法

 double d=2.99;
 int i=(int) Math.ceil(d);
 System.out.println(i);
Math.round(double);
下面是API文档的链接


对于Ceil,即a=3:

double dd=2.99;
int a =Math.ceil(dd) 
地板:即a=2

double dd=2.99;
int a =Math.Floor(dd)