永发信息网

JAVA关于数据类型算术运算符的一个问题

答案:5  悬赏:50  手机版
解决时间 2021-04-09 03:22
public class Test {
public static void main(String[] args){
int i;
i=10/3;
System.out.println(i);
float i1;
i1=10/3;
System.out.println(i1);
double i2;
i2=10/3;
System.out.println(i2);
long i3;
i3=55656*68125;
System.out.println(i3);
}
}
如上述得到的结果是
3
3.0
3.0
-503402296

1:要怎么得到3.33333333这样的数。
2:为什么i3没有报错,这个应该是溢出了
最佳答案
1
public class Test {
public static void main(String[] args){
int i;
i=10/3;
System.out.println(i);
float i1;
i1=(float)10/3;
System.out.println(i1);
double i2;
i2=(double)10/3;
System.out.println(i2);
long i3;
i3=55656*68125;
System.out.println(i3);
}
}
加个强制类型转换

2
试试
System.out.println(Long.MAX_VALUE);
System.out.println(Long.MIN_VALUE);
溢出还早呢
全部回答
1. 将i1 = 10/3   改为  10/3.0 就可以了. 他是有类型转换的.两个整形(10和3)相除只能获得整数也就是3,再将3转化为float,所以是3.0. 2. 数字溢出不会报错.
1. float f=10/3.0; 2. long在溢出之后只保留低64bit的数据,高位被抛弃,所以得那个数。
1:int类型的输出是整数,不会得到3.333333这样的数,你可以使用 BigDecimal bd = new BigDecimal(10); bd = bd.divide(new BigDecimal(3),10,BigDecimal.ROUND_HALF_UP); System.out.println(bd);因为是除不尽的,我只保留的10位小数 2:溢出是不会报错的,只是计算结果会出错哦
1. float f=10/3.0; 2. long在溢出之后只保留低64bit的数据,高位被抛弃,所以得那个数。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我很想玩大型的单机游戏。。。但是不知道在哪
【中专】上海南湖职业学校
一首女歌略电音歌词里有“我跟你走我跟你走”
全亚光乳胶漆是什么颜色?
请例举两个你所知道的在生活和生产中利用“惯
益寿楼我想知道这个在什么地方
现子是什么意思
绿色森林手抄报标语,环保的资料可以文字,图
作文(60分)21下面两个题目,任选一题作文。
汽车喇叭不工作的5个原因是什么
红纸用什么印泥
改正缺点的古诗词,人总是有缺点的,但只要不断
作文假如我考上了曲一中
夏天的好句子大全,描写夏天的优美句子
南史·文学列传阅读答案
推荐资讯
单独招生和自主招生一样吗????
1000W调压器的环形变压器做工频逆变器能做多
乳液好处
天龙八部游戏烧钱吗,天龙八部3客户端多大
你好,你的那个动态图解压密码您知道吗
沙发如何挑选,沙发选购技巧,买沙发要注意什
假如我有一双翅膀用诗歌形
为什么使用联通的透支额度第二天照样停机
日本料理铁板烧鹅肝怎么做求详细步骤
隋朝的统治类似于以下哪个朝代
安徽新东方是骗人的吗 能学到东西吗
单选题北京市发改委召开本市居民水价调整听证
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?