首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java对两个数字进行对齐,等号为原语

Java对两个数字进行对齐,等号为原语
EN

Stack Overflow用户
提问于 2022-01-21 18:30:45
回答 2查看 54关注 0票数 -1

问题可能很简单。检查了两种基本类型的相等性,得到了一些错误。两人之一,第二人长。

代码语言:javascript
复制
public class TesterPrimitive {

public static void main(String[] args) {
    System.out.println("Equality - " + (5.0 == 5)); // Return true
    System.out.println("Equality - " + (5.000000000000001D == 5L)); // Return false
    System.out.println("Equality - " + (5.0000000000000001D == 5L)); // Return true
}}

为什么第三次平等,双倍和长,我得到了真理?这是否意味着,在(.)之后的长0数字,将任何值更改为绝对值0?或者它改变了位,然后我们可以得到5.0的双倍?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-21 18:36:32

正如您在这里看到的,https://www.geeksforgeeks.org/difference-float-double-c-cpp/ double精确地具有15位数字的精度。16位数四舍五入。

另一件需要理解的事情也许很重要--在对不同原语执行操作时(如这里(5.0 == 5) ),int会被提升为double (为了相等的操作)。这里有更多的https://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html

票数 2
EN

Stack Overflow用户

发布于 2022-08-05 14:56:35

双变量的精度约为15位,这足以使大多数purposes.double数据类型在计算机内存中占据8字节的空间,并在小数点后存储15到16个数字,您可以检查这篇文章,希望这将对您有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70806042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档