将double转换为Int,向下舍入

时间:2012-04-23 12:27:38

标签: java type-conversion rounding

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

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

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

也就是说,答案总是四处整合。

5 个答案:

答案 0 :(得分:91)

如果您明确强制转换 doubleint,则小数部分将被截断。例如:

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

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

答案 1 :(得分:26)

如果double是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;

答案 2 :(得分:5)

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

double值为420.5,应用程序打印出整数值420

答案 3 :(得分:3)

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

答案 4 :(得分: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);
         }
    });