Java:为什么这个乘法的计算结果和正确结果差那么多呢?
publicclassDemo{publicstaticvoidmain(String[]str){System.out.println(1000*3600*24*30*...
public class Demo
{
public static void main (String [] str)
{
System.out.println(1000*3600*24*30*2);
}
}
输出:889032704
但是使用计算器的结果是:5184000000 展开
{
public static void main (String [] str)
{
System.out.println(1000*3600*24*30*2);
}
}
输出:889032704
但是使用计算器的结果是:5184000000 展开
5个回答
展开全部
超过Int的范围了,你可以这样写:
public class Demo
{
public static void main (String [] str)
{
System.out.println(1000L*3600*24*30*2);
}
}
这样会自动转成long类型
public class Demo
{
public static void main (String [] str)
{
System.out.println(1000L*3600*24*30*2);
}
}
这样会自动转成long类型
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1000*3600*24*30*2 默认返回的是int 而 int是有取值范围的,当超出范围的时候,就不正确啦结果
你可以这么做1000L*3600*24*30*2 这样结果返回就是long 答案就没问题啦
你可以这么做1000L*3600*24*30*2 这样结果返回就是long 答案就没问题啦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的计算结果超出了int类型的取值范围
转成一个大点的数据范围比如 double 如下:
System.out.println((double) 1000*3600*24*30*2);
转成一个大点的数据范围比如 double 如下:
System.out.println((double) 1000*3600*24*30*2);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
超过整型的范围了,网页搜下java的数据类型的范围吧,基础的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询