❶ java中的一个除法的取整问题,如下图我知道是因为取整的原因但是我想清楚是怎样一个过程
原理很简单,在java中所有名文写在代码里的数字,都被编译器按照int类型处理,int类型变量之间进行四版则运算结果还是权int类型的
time / (1000 * 60 * 60 * 24 * 365)
这个语句中,括号内的乘法计算结果就是int类型的,但是这个乘积的结果超过了int的表示范围了int 能表示的最大值 Integer.MAX_VALUE =2147483647 (本人系统MacOS10.15, jdk1.8, 不同系统不同版本jdk下,这个值可能不同,但是相差不大)
而你表达式括号内的乘法结果是31536000000,已经远大于int的表示范围了,因此这个计算结果是越界的,错误的,所以最终得到的结果是错误的
把第一个计算数改成long类型的,计算结果就会是正确的了
❷ java中如何取整
java向上取整、向下取整、四舍五入取整方法详解
网页链接
❸ java中如何取整
通过(int)方式进行取整,(int)是强转,强制把其他类型转换成整型。
语法:
int b =(int)浮点型变量;
例如:专
doublea=1.22;
intb=(int)a;//强转double为整型。,取整,结属果为1
❹ 在java中怎么对一个数字取整
public class EXC {
public static void main(String[] args) {
//如果是将复 一个制 float或double类型的小数 转换为整数 如下:
//利用java的强制类型转换规则
double d = 12.3;
int i = (int)d;
System.out.println(i);
//如果是将一个表示小数的 字符串转换为整数 如下:
//利用Integer包装类
String s = "12.3";// 或12.3f
i = Integer.parseInt(s.split("\\.")[0]);
System.out.println(i);
}
}