为什么这个Java部门打印出零?

use*_*239 2 java

我有以下代码行:

System.out.println(5/9);
Run Code Online (Sandbox Code Playgroud)

我希望看到0.555作为结果,但它打印出零.有人能帮我理解为什么会这样吗?我目前正在学习编程并感谢他们的帮助.

谢谢!

Ama*_*tri 7

发生这种情况是因为你在不知不觉中做的是Integer Division.为了快速进行计算,当没有涉及十进制数时,计算机使用整数除法,因此十进制值丢失.

试试这个:

System.out.println(5.0 / 9.0);
Run Code Online (Sandbox Code Playgroud)

要么

System.out.println(5.0 / 9);
Run Code Online (Sandbox Code Playgroud)

要么

System.out.println(5 / 9.0);
Run Code Online (Sandbox Code Playgroud)

要么

System.out.println((float) 5 / 9);
Run Code Online (Sandbox Code Playgroud)

要么

System.out.println(5 / (float) 9);
Run Code Online (Sandbox Code Playgroud)


Ada*_*kal 5

你试图通过9.Both分5 integers.So的回答也是integer.So返回0作为answer.So尝试像System.out.println(5.0/9);或赋值浮动的变量,并与去