如何将 double
值转换为 int
,并执行以下操作:
Double If x = 4.97542. Convert to int x = 4.
Double If x = 4.23544. Convert to int x = 4.
也就是说,答案总是向下取整。
如何将 double
值转换为 int
,并执行以下操作:
Double If x = 4.97542. Convert to int x = 4.
Double If x = 4.23544. Convert to int x = 4.
也就是说,答案总是向下取整。
如果你将 double
明确地强制转换为 int
,那么小数部分会被截断。例如:
int x = (int) 4.97542; //gives 4 only
int x = (int) 4.23544; //gives 4 only
此外,如果您希望返回 double
值,并且想要将值舍入,则可以使用 Math.floor()
方法。
如果这个double是一个带有大写D(即一个装箱原始值)的 Double
:
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;
double myDouble = 420.5;
//Type cast double to int
int i = (int)myDouble;
System.out.println(i);
另一个选择是使用Double
或double
,并使用Double.valueOf(double d).intValue();
。简单而干净。
我认为我的输出更好,特别是对于双精度数据类型的排序。
虽然这个问题已经被标记为已回答,但也许这会帮助其他人;
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);
}
});
Math.floor()
相同的数字吗? - Samuel Edwin Ward