java问题 1/2=0 1/2.0=?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java问题 1/2=0 1/2.0=?相关的知识,希望对你有一定的参考价值。
JAVA 运算符和表达式中 2个整数X和y的乘法和求余遵循规则
(x/y)*y+x%y=x
整数相除的结果取其整数部分,%是求两个数相除的余数 例如 1/2的结果是0 那么1/2.0结果是多少呢?怎么算出这个结果的?
50分悬赏
因为1是整型,2.0是浮点型,当两个相加的时候,java会自动的把整型自动转换称为浮点型,这个称之为“自动类型转换”自动类型转换的含义是:将一中类型的变量赋给另一种类型的变量时,就会发生自动类型转换。发生此类型的转换要满足的条件是:1两种类型必须兼容;2目标类型大于源类型。
所以1.0/2.0=0.5。 参考技术A 1/2=0那是因为这样写就默认为int类型的,而1/2.0=0.0.那是因为1是int类型的,而2.0默认为double类型的,而这样可以从int类型自动转换为double类型的,所以是0.0。 参考技术B 为什么1/2=0,那是你的代码类型写的不正确,你应该是这样写的
int a=1/2 结果为0, 或者
double a=1/2 结果为0.0呢,原因在于
等号右边的1/2类型默认是int型,2个int型数字相除也是int型,等号右边可以看成是int(1/2)=0,将0变成double类型,所以是0.0,那怎么更改呢,2种方法:
double a=double(1/2) 或者
double a=1.0/2.0
以上是关于java问题 1/2=0 1/2.0=?的主要内容,如果未能解决你的问题,请参考以下文章
java取余。刚开始学习java 遇到这种问题就犯迷,求各位大神讲解一下。 8%2 //