java int double 加减法 基本类型运算问题
System.out.println(150.0+0+183.28-0-183.28-150.0);输出结果:-2.8421709430404007E-14为什么?Sys...
System.out.println(150.0+0+183.28-0-183.28-150.0);
输出结果:-2.8421709430404007E-14
为什么?
System.out.println(((150.00)+0.00+(183.28))-(0.00+(183.28)+(150.00)));
输出结果0.0;
为什么?只是加了个括号.差别这么大.
用System.out.println((long)(150.0+0+183.28-0-183.28-150.0));
输出的结果是0;
为什么?为什么我的问题里面给出的是个那么长的数字而不是0? 展开
输出结果:-2.8421709430404007E-14
为什么?
System.out.println(((150.00)+0.00+(183.28))-(0.00+(183.28)+(150.00)));
输出结果0.0;
为什么?只是加了个括号.差别这么大.
用System.out.println((long)(150.0+0+183.28-0-183.28-150.0));
输出的结果是0;
为什么?为什么我的问题里面给出的是个那么长的数字而不是0? 展开
6个回答
展开全部
1.-2.8421709430404007E-14表示-2.8421709430404007乘以10的-14次方,计算机能准确表示十进制的整数,但不能准确表示十进制小数。System.out.println(150.0+0+183.28-0-183.28-150.0);150.0+0+183.28-0-183.28-150.0的结果为0.00000000000...,只不过你的输出结果为double型,精度比较高,没有超出打印函数(println之类的)的默认精度而已。
2.System.out.println(((150.00)+0.00+(183.28))-(0.00+(183.28)+(150.00)));中将((150.00)+0.00+(183.28))作为个运算单元,二个括号内的运算的结果肯定一样,与精度无关。结果当然为0。
3.用System.out.println((long)(150.0+0+183.28-0-183.28-150.0));(150.0+0+183.28-0-183.28-150.0)的结果为0.00000000...,转换成long,舍弃小数位,结果自然为0;
4.System.out.println(150.0F+0+183.28F-0-183.28F-150.0F); 运算结果为float型,超出打印函数(println之类的)的默认精度,截取下来为0。
不知道解释的你满意不?
2.System.out.println(((150.00)+0.00+(183.28))-(0.00+(183.28)+(150.00)));中将((150.00)+0.00+(183.28))作为个运算单元,二个括号内的运算的结果肯定一样,与精度无关。结果当然为0。
3.用System.out.println((long)(150.0+0+183.28-0-183.28-150.0));(150.0+0+183.28-0-183.28-150.0)的结果为0.00000000...,转换成long,舍弃小数位,结果自然为0;
4.System.out.println(150.0F+0+183.28F-0-183.28F-150.0F); 运算结果为float型,超出打印函数(println之类的)的默认精度,截取下来为0。
不知道解释的你满意不?
展开全部
java.lang.UnsatisfiedLinkError:是因为找不到正确的库文件
两个原因:
1。可能是库文件路径不正确。
2。可能是库文件无法正确加载,例如缺少相应的依赖库(可以用vc自带的depends看一下库文件)
两个原因:
1。可能是库文件路径不正确。
2。可能是库文件无法正确加载,例如缺少相应的依赖库(可以用vc自带的depends看一下库文件)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
float类型的数值有个后缀:F,如果没有后缀F,那么默认为double。double类型的数值也可以使用后缀D。
改成这样就可以了 System.out.println(150.0F+0+183.28F-0-183.28F-150.0F);
改成这样就可以了 System.out.println(150.0F+0+183.28F-0-183.28F-150.0F);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
System.out.println((long)(150.0+0+183.28-0-183.28-150.0));
你试试这个看行不!因为我没装JDK,现在运行不了。
你试试这个看行不!因为我没装JDK,现在运行不了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询