Java初学者求助:已声明double变量,如何将其转换为整数?
Java中Double转整数的实用方法
先纠正个小问题:你写的double variable two;是无效的变量声明,Java变量名不能包含空格,应该改成double variableTwo;(推荐用驼峰命名法)。
下面是几种把double转成整数的常用方式,按需选择:
1. 强制截断转换(直接丢弃小数部分)
如果只需要保留整数部分、不管小数是多少都直接砍掉,用强制类型转换就行,语法是在变量前加(int):
double variableOne = 3.9; double variableTwo = 5.1; // 转换为整数 int intVarOne = (int) variableOne; int intVarTwo = (int) variableTwo; // 打印结果 System.out.println(intVarOne); // 输出3 System.out.println(intVarTwo); // 输出5
注意:这种方式是直接截断小数,不是四舍五入。
2. 四舍五入转换
如果需要按照数学里的四舍五入规则转整数,用Math.round()方法,它返回的是long类型,要是需要int类型可以再做一次强制转换:
double variableOne = 3.6; double variableTwo = 5.3; // 四舍五入转int int roundedOne = (int) Math.round(variableOne); long roundedTwo = Math.round(variableTwo); // 也可以直接用long接收 System.out.println(roundedOne); // 输出4 System.out.println(roundedTwo); // 输出5
3. 向上/向下取整转换
如果需要向下取整(不管小数多少都往小的整数靠)或者向上取整(不管小数多少都往大的整数靠),用Math.floor()和Math.ceil(),这两个方法返回的是double类型,需要转成int:
double num = 3.1; // 向下取整,得到3 int floorNum = (int) Math.floor(num); // 向上取整,得到4 int ceilNum = (int) Math.ceil(num); System.out.println(floorNum); System.out.println(ceilNum);
内容的提问来源于stack exchange,提问作者Eve Pesci
相关产品推荐
相关产品推荐

