我写的是这段代码:
public static void main(String[] args) {
double g = 1 / 3;
System.out.printf("%.2f", g);
}
Run Code Online (Sandbox Code Playgroud)
结果是0.为什么这样,我该如何解决这个问题?
我正在尝试编写一个代码来计算给定整数的以下内容n:
1/1 + 1/2 + 1/3 ... + 1/n
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止编写的代码:
public class RecursiveSum
{
public static double Sumto(int n)
{
if (n == 0) { return 0.0; }
else if (n > 0) { return 1/n + 1/Sumto(n - 1); }
else { throw new IllegalArgumentException("Please provide positive integers"); }
}
public static void main(String[] args)
{
System.out.println(Sumto(5));
}
}
Run Code Online (Sandbox Code Playgroud)
但是,它始终输出:
Infinity
Run Code Online (Sandbox Code Playgroud)
有什么问题,我该如何解决?
谢谢
我有一个要在屏幕上使用的按钮。但是,当我调整桌面窗口的大小时,触摸坐标本身就会混乱。我不知道如何解决这个问题。
所以首先我正在使用
cam = new PerspectiveCamera();
viewport = new FitViewport(screenWidth, screenHeight, cam);
Run Code Online (Sandbox Code Playgroud)
并叫
viewport.update(width, height, true);
Run Code Online (Sandbox Code Playgroud)
在我的调整大小方法中,以便我的屏幕看起来总是与其原始大小成比例。
对于我的输入
Gdx.input.setInputProcessor(new InputHandler((float) scaleX, (float) scaleY, world));
Run Code Online (Sandbox Code Playgroud)
现在调整窗口大小后,图像位于正确的位置,但触摸坐标不在。这有点难以解释,但我会尽力而为。秤工作正常。但是,由于我使用的是 Fitviewport,因此当我调用 Gdx.graphics.getHeights() 或 .getWidth() 时,它会获取整个屏幕的高度和宽度(包括仅增加一侧时的黑色区域)。因此,这使我的输入比例与整个屏幕成比例。虽然图像通过 Fitviewport 进行说明,并根据其原始大小按比例调整大小。这使我的输入位置与绘制的图像相比,按钮响应太左或向右或向上或向下。我也试过 cam.unproject。我该如何解决这个问题?
我提供了一些日志,希望可以帮助您更好地了解我的情况。
---未调整大小(原始)---
调整大小称为
调整大小 x : 480 y : 800
缩放 x : 1.0 y : 1.0
(按钮原始位置和按钮响应输入的坐标)
缩放前 X : 398 Y : 75
缩放后 X : 398 Y : 75
Gdx 输入 X : 398 Y : 75
cam unproject X : 240.26144 Y : …
在下面的代码中,当x = 60且y = 2时,结果= 500.这是正确的,但是在60和119之间的任何x值也给出500.此外,当x <60时,我得到除以0的错误.另外,当x> = 120时,结果= 0.我很难理解为什么会发生这种情况.我也试过使用int,float和long的各种组合,但仍然没有运气.
public class main {
static long result;
static int x;
static int y;
public static void main(String[] args) {
x = 60;
y = 2;
result = 1000 * (1 / (x / 60)) / y;
System.out.println(result);
}
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,我在尝试为Android制作节拍器应用程序时遇到了这个问题.我将此代码脱离了上下文,以便更容易隔离问题.非常感谢任何帮助和/或建议!
在 Java 中使用算术运算符对两个数字进行除法。
Scanner scan = new Scanner(System.in);
System.out.print("Write a number: ");
String mataett = scan.next();
System.out.print("Write a number: ");
String matatva = scan.next();
int nr1 = Integer.parseInt(mataett);
int nr2 = Integer.parseInt(matatva);
System.out.println(Math.round(nr1 / nr2*10.0)/10.0);
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,73/27我得到了答案2.0,但我想要得到的是答案2.7
在Java中执行以下操作时,我得到结果0.0.即使结果应为10.这是一个示例计算,在我的代码中,它使用double值进行此操作.
double result = (10 / 100) * 100;
Run Code Online (Sandbox Code Playgroud) 我有以下代码
int num1 = 8;
int num2 = 5;
double ans = num1/num2;
System.out.println(ans); // result is 1.0
Run Code Online (Sandbox Code Playgroud)
为什么我得到1.0的ans,它应该是1.6?
我正在制作一个简单的计算器,但是当我尝试划分时,我总是得到1.0,当我减去时,我总是得到零.加法和乘法工作正常.
我读过类似的问题,例如: 为什么整数除法代码给出了错误的答案? 在Java中划分两个整数给我0或100? Java中的除法总是导致零(0)?
还有很多...
这是我的代码的一部分:
if (minu) {
number1 = Double.valueOf(display1.getText().toString());
number2 = Double.valueOf(display1.getText().toString());
display1.setText("");
display2.setText("");
displaySymbol.setText("");
answer = number1 - number2;
display1.setText(Double.toString(answer));
}
Run Code Online (Sandbox Code Playgroud)
和分裂:
if (divid) {
number1 = Double.valueOf(display1.getText().toString());
number2 = Double.valueOf(display1.getText().toString());
display1.setText("");
display2.setText("");
displaySymbol.setText("");
answer = number2 / number1;
display1.setText(Double.toString(answer));
}
Run Code Online (Sandbox Code Playgroud)
请帮忙!