53

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

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

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

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

4

5 回答 5

104

如果显式转换 doubleint,小数部分将被截断。例如:

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

此外,如果您想要返回值,您还可以使用Math.floor()方法对值进行舍double入。

于 2012-04-23T12:29:45.927 回答
31

如果双精度为Double大写D(盒装原始值):

Double d = 4.97542;
int i = (int) d.doubleValue();

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

如果 double 已经是一个原始的double,那么你只需转换它:

double d = 4.97542;
int i = (int) d;
于 2012-04-23T12:34:59.920 回答
5
double myDouble = 420.5;
//Type cast double to int
int i = (int)myDouble;
System.out.println(i);

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

于 2012-04-23T12:32:02.077 回答
3

另一个选项 usingDoubledoubleis use Double.valueOf(double d).intValue();。简单干净

于 2015-11-20T13:46:31.503 回答
0

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

尽管此问题已被标记为已回答,但也许这对其他人有帮助;

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);
         }
    });
于 2015-11-07T21:29:29.717 回答