当前位置: 首页 > 知识库问答 >
问题:

System.out.println(1/10)打印0?[副本]

汪兴为
2023-03-14
System.out.println(1/10);

打印出0。所以,从逻辑上来说,我认为它是强制转换成int的,所以我试着

System.out.println((double)1/10);

然后打印出适当的0.1。我不明白为什么第一次它会自动转换成int。它还能在哪里做到这一点?为什么?

共有1个答案

陶琦
2023-03-14

它不强制转换为int,它已经是int了。int/int是int。

还要注意,当您像在(double)1/10中那样强制转换为double时,由于强制转换运算符的优先级高于division,这与((double)1)/10相同,这会导致double中的division发生。

如果像(double)(1/10)那样在除法之后强制转换,结果将是0.0。

 类似资料:
  • Contributed by Sean Kelly. Restructured and updated by Jim Mock. 10.1. 概述 FreeBSD 可以支持众多种类的打印机,从最古老的针式打印机到最新的激光打印机以及它们之间所有类型的打印机,令您运行的应用程序产生高质量的打印输出。 FreeBSD 也可以配置成网络打印服务器。 它可以从包括FreeBSD、 Windows® 及 M

  • 最简单的Java程序是helloWorld。只有一个类、一个主函数和一条语句:System。出来println(“你好世界”); 在Eclipse氧气中输入该程序。3A作为一个Java项目,在一个名为helloWorld的包中,在一个名为App的类中,运行在Java 1.8上。 在Eclipse中运行良好,我可以在Eclipse控制台窗口中看到Hello world。在cmd窗口中以java he

  • 使用面向对象的原理用java编写一个程序来检查一个数字是否为素数。如果为素数,则打印1如果为假,则打印0如果给定值小于或等于1,则打印-1。从用户那里获取值? 当我给出一位数的值时,它起作用,但当我给出两位数的值时,它不起作用

  • 当我打印出 我得到的回报是:

  • 我创建了一个while循环来为我的程序创建菜单,它将一直循环,直到用户在控制台中键入“退出”。我的问题是,每当我在控制台中输入'Transfer'时,if语句都能正常运行,但当它返回到循环的开始时,

  • 我试图键入数组,但得到 我在谷歌上搜索了一下,我知道了关于这个例外的一切,但是我不能做任何事情来解决这个愚蠢的问题。