最近看java基础,发现数值不一样的long和double类型的数据比较的结果居然会相同,请高手答疑!
发布网友
发布时间:2022-04-23 22:05
我来回答
共2个回答
热心网友
时间:2023-10-11 11:12
自动类型提升,也就是说两个基础数据类型进行值对比的时候,类型不一样
低的会自动提升到高的数据类型,然后进行对比!
你可以做个实验,
int 10;
byte 10;
long 10;
double 10;
进行比对,你会发现全都是true!追问您说的自动提升应该是原因所在,但是您举的例子并不恰当,我需要的是数值不同,结果却相同的例子。我测试后推断,应该是long类型和double类型进行比较的时候,long类型自动提升为double类型丢失了精度,导致相等。谢谢您的回答,让我醍醐灌顶,我还会继续查阅其他资料,学习之路,任重道远。谢谢!
热心网友
时间:2023-10-11 11:13
JVM不一样