相关疑难解决方法(0)

内部划分:为什么1/3 == 0的结果?

我写的是这段代码:

public static void main(String[] args) {
    double g = 1 / 3;
    System.out.printf("%.2f", g);
}
Run Code Online (Sandbox Code Playgroud)

结果是0.为什么这样,我该如何解决这个问题?

java integer-division

95
推荐指数
3
解决办法
13万
查看次数

算术递归

我正在尝试编写一个代码来计算给定整数的以下内容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)

有什么问题,我该如何解决?

谢谢

java recursion

6
推荐指数
1
解决办法
112
查看次数

调整 libGDX 大小后触摸位置不正确

我有一个要在屏幕上使用的按钮。但是,当我调整桌面窗口的大小时,触摸坐标本身就会混乱。我不知道如何解决这个问题。

所以首先我正在使用

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 : …

java android libgdx

5
推荐指数
1
解决办法
1333
查看次数

在Java中执行计算会给出完全错误的答案

在下面的代码中,当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 int android long-integer

3
推荐指数
1
解决办法
419
查看次数

除数

在 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 math

2
推荐指数
1
解决办法
3万
查看次数

没有得到正确的数学结果

在Java中执行以下操作时,我得到结果0.0.即使结果应为10.这是一个示例计算,在我的代码中,它使用double值进行此操作.

double result = (10 / 100) * 100;
Run Code Online (Sandbox Code Playgroud)

java

-1
推荐指数
1
解决办法
74
查看次数

为什么Strange回答Java?

我有以下代码

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.0ans,它应该是1.6

java

-4
推荐指数
1
解决办法
86
查看次数

Android:除法和减法始终等于1.0

我正在制作一个简单的计算器,但是当我尝试划分时,我总是得到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)

请帮忙!

java android arithmetic-expressions calculator

-6
推荐指数
1
解决办法
404
查看次数