关于java:将double转换为Int,四舍五入

Convert double to Int, rounded down

如何执行以下操作将double值转换为int

1
2
3
Double If x = 4.97542. Convert to int x = 4.

Double If x = 4.23544. Convert to int x = 4.

也就是说,答案总是四舍五入。


如果将double显式转换为int,则小数部分将被截断。 例如:

1
2
int x = (int) 4.97542;   //gives 4 only
int x = (int) 4.23544;   //gives 4 only

此外,如果希望返回double值,也可以使用Math.floor()方法对值进行舍入。


如果double是带有大写D的double(装箱的原始值):

1
2
3
4
5
Double d = 4.97542;
int i = (int) d.doubleValue();

// or directly:
int i2 = d.intValue();

如果double已经是原始double,则只需将其强制转换为:

1
2
double d = 4.97542;
int i = (int) d;


1
2
3
4
double myDouble = 420.5;
//Type cast double to int
int i = (int)myDouble;
System.out.println(i);

双精度值是420.5,应用程序将打印出整数值420


使用doubledouble的另一个选项是使用Double.valueOf(double d).intValue();。 简单干净


我认为我有更好的输出,尤其是对于双重数据类型排序。

尽管此问题已被标记为已回答,但也许会帮助其他人。

1
2
3
4
5
6
7
8
Arrays.sort(newTag, new Comparator<String[]>() {
         @Override
         public int compare(final String[] entry1, final String[] entry2) {
              final Integer time1 = (int)Integer.valueOf((int) Double.parseDouble(entry1[2]));
              final Integer time2 = (int)Integer.valueOf((int) Double.parseDouble(entry2[2]));
              return time1.compareTo(time2);
         }
    });