【发布时间】:2012-05-04 01:31:00
【问题描述】:
如何将double 值转换为int,执行以下操作:
Double If x = 4.97542. Convert to int x = 4.
Double If x = 4.23544. Convert to int x = 4.
也就是说,答案总是向下取整。
【问题讨论】:
标签: 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.
也就是说,答案总是向下取整。
【问题讨论】:
标签: java type-conversion rounding
如果您明确地将double转换为int,小数部分将被截断。例如:
int x = (int) 4.97542; //gives 4 only
int x = (int) 4.23544; //gives 4 only
此外,您还可以使用Math.floor() 方法对值进行四舍五入,以防您希望返回double 值。
【讨论】:
Math.floor() 相同的号码?
如果双精度是 Double 大写 D(盒装原始值):
Double d = 4.97542;
int i = (int) d.doubleValue();
// or directly:
int i2 = d.intValue();
如果双精度已经是一个原始的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);
双精度值是 420.5,应用程序打印出整数值 420
【讨论】:
使用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);
}
});
【讨论】: