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分悬赏

结果是0.5。
因为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=?的主要内容,如果未能解决你的问题,请参考以下文章

Fastjson <= 1.2.47 远程命令执行漏洞

java取余。刚开始学习java 遇到这种问题就犯迷,求各位大神讲解一下。 8%2 //

java spring 中(cron = "0 0 */2 * * ?")表示多久运行一次?

Java分割数组成子数组

Java 的命令行 编译和运行参数 如:-cp 怎么理解?

Apache Tomcat 7.0.47 上的 BeanManager 无法创建资源实例