如何在Kotlin中进行类型转换?将Double变量存入Int变量的方法
Java中Double变量转Int变量的方法
你之前写的double doubleNumber = (int)intNumber是把int类型转成double类型的写法,和你现在需要的Double转Int刚好相反,下面是几种正确的实现方式:
强制类型转换(截断小数)
这种方式会直接舍弃小数部分,只保留整数部分,适合不需要四舍五入的场景。如果是包装类Double,需要先调用doubleValue()转成基本类型double再转换:// 包装类Double转int Double doubleNum = 5.9; int intNum = (int) doubleNum.doubleValue(); // 结果是5 // 基本类型double转int double doubleNum = 5.9; int intNum = (int) doubleNum; // 结果也是5四舍五入转换
如果需要按四舍五入规则转换,使用Math.round()方法,该方法返回long类型,所以需要再转成int:Double doubleNum = 5.9; int intNum = (int) Math.round(doubleNum); // 结果是6 double doubleNum = 5.4; int intNum = (int) Math.round(doubleNum); // 结果是5注意事项
- 如果Double的值超出int类型的范围(大于
Integer.MAX_VALUE即2147483647,或小于Integer.MIN_VALUE即-2147483648),强制转换会得到错误的数值,建议转换前先判断范围:Double doubleNum = 3000000000.0; if (doubleNum >= Integer.MIN_VALUE && doubleNum <= Integer.MAX_VALUE) { int intNum = (int) doubleNum.doubleValue(); } else { // 处理超出范围的情况,比如抛出异常或给出提示 }
- 如果Double的值超出int类型的范围(大于
内容的提问来源于stack exchange,提问作者AmirAli Ghafouri
相关产品推荐
相关产品推荐

