java新手 请教个double的问题 书中写道(int)3/4 是0(double)3/4是0.75(double)(3/4)是0.0第一个我明白是3除以4后的取整那第二 第三个呢?能帮我详细解释下吗 谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个是自动转换问题,(int)3/4 等同于 ((int)3)/4 等同于3/4,直接写3系统默认为int型; (double)3/4 就是先将3转换为double型数值,然后再除以4,这时候系统自动将int类型的4转换为double类型,所以计算结果为0.75;(double)(3/4)这个是先计算int类型的3和4相除的值,这个值为0,然后再将int型的0转换为double型,也就是0.0了。 int类型遇到double类型时就自动转换为更高级的了 很详细,非常非常感谢!再请问一下,从int型的到double型是怎么转换的?比如这个3和0我看书double型是用64位表示浮点数。不应该是64位么,怎么能是 0.0? 哦哦,那这个3/4变成double型和0变成double型 都是怎么变的?有什么运算规则么。 拜托楼下的帮我说说,这个double型到底是怎么变的吧,要考试的~~怎么从3/4变成double的0.75 从0变成double 的 0.0的? double是浮点性,所以必至少要保留一个小数,比如0变成double就是0.0,而3/4就是0.75 先看下书,搞懂 !,&,||(非,与,或)的关系,相信就很简单了。 看到大家说了这么多一楼说的真的很对,我们在数值转换中要注意自动转化,这个问题在我们新手看来一般不太会注意的,只有到自己真正遇到数据输出和自己想要的不相同时才会想到,建议大家多研究下数据自动转化的问题,虽然说平时会用String类比较多,可是如果你在做项目涉及到要求去数据的精确值时,建议还是自己的看看吧! (double)3/4是0.75 是因为先将3转化成double类型然后再和4相除 得到的是double类型但(double)(3/4)是0.0是因为先将3和4相除 得到的是0 然后再转化成double类型 就是0.0 (double)3/4 的意思是3/4 看成一个整体 是double型的可以是小数(double)(3/4) 的意思是2个整体 (3/4)是一个整体 它的结构是个int型的 3和4都是int型的所以(3/4)这个整体也是int型的 也就是0 然后再把0转换成double型的 也就是0了应该懂了吧 short a=1,short b=4short c=a*b==>是错误的。因为a*b已经自动转换成int型double (1.32*1.21)==>输出1.5972float (1.32*1.21)==>输出1.5972double(3/2.1)==》输出6.3在自动类型转换中,若运算符两边都为 整型 则转换成 int;若有一个为 浮点型 则自动转换成 double 型(验证通过不是float型) 你这种情况就是两边都是整型的情况,(double)(3/4)是0.0 为啥会出现0.0,也就是先自动转换成int型,再被你强制转换成double类型(符合上面定律) 1楼的解释了。。第二题double的运算优先级比/高。所以先把3转成double型再去运算.第三题()的运算优先级比double高,所以先把两个整数运算了再转成double型 非常用好。不过还有像 5 6 2 这样的都是整型。像1.2 1.2 2.3 默认的都是double型。而不是float型.这时候系统自动将int类型的4转换为double类型 有什么说法吗。系统为什么会自动将int double而不是double 转 int int 是 4个字节double 是 8个字节。为什么 int 转 double 前面加括号是强制型类型转换了。所以回出现小数,,而第二个是因为你把3/4的值求出来了。而3/4的默认类型是 int,所以是0,然后你又强制类型转换了。所以是0。0 java 图形操作 GUIjava2D 小妹有请---全屏实现问题? 请前辈们指教 救命呀,我现在需要做一个根据用户不同输入进入不同处理程序的功能,请问应该如何实现呀?分数不够可以不限制增加,急呀。 如何比较自定义的对象,请大家发发言 别人用c写了一个dll文件.我不知道源码!想在java里面调用里面的方法该咋办呀. 怎么把double型的科学计数法的数字变成普通的格式 大家怎样处理application的密码修改问题(密码保存成文件,要加密) 请问jb和vj哪一个较好一点? 急急急!!! UDP连接问题 java面试题(高手解答) swing jinternalframe????
(double)3/4 就是先将3转换为double型数值,然后再除以4,这时候系统自动将int类型的4转换为double类型,所以计算结果为0.75;
(double)(3/4)这个是先计算int类型的3和4相除的值,这个值为0,然后再将int型的0转换为double型,也就是0.0了。
很详细,非常非常感谢!
再请问一下,从int型的到double型是怎么转换的?比如这个3和0我看书double型是用64位表示浮点数。不应该是64位么,怎么能是 0.0?
哦哦,那这个3/4变成double型和0变成double型 都是怎么变的?有什么运算规则么。
怎么从3/4变成double的0.75 从0变成double 的 0.0的?
(double)(3/4)是0.0是因为先将3和4相除 得到的是0 然后再转化成double类型 就是0.0
(double)(3/4) 的意思是2个整体 (3/4)是一个整体 它的结构是个int型的 3和4都是int型的所以(3/4)这个整体也是int型的 也就是0 然后再把0转换成double型的 也就是0了应该懂了吧
short c=a*b==>是错误的。因为a*b已经自动转换成int型double (1.32*1.21)==>输出1.5972
float (1.32*1.21)==>输出1.5972
double(3/2.1)==》输出6.3在自动类型转换中,
若运算符两边都为 整型 则转换成 int;
若有一个为 浮点型 则自动转换成 double 型(验证通过不是float型)
两边都是整型的情况,
(double)(3/4)是0.0
为啥会出现0.0,也就是先自动转换成int型,再被你强制转换成double类型(符合上面定律)
第二题double的运算优先级比/高。所以先把3转成double型再去运算.
第三题()的运算优先级比double高,所以先把两个整数运算了再转成double型
非常用好。不过还有像 5 6 2 这样的都是整型。
像1.2 1.2 2.3 默认的都是double型。而不是float型.
这时候系统自动将int类型的4转换为double类型 有什么说法吗。系统为什么会自动将int double
而不是double 转 int
int 是 4个字节
double 是 8个字节。
为什么 int 转 double