java - 可能会损失精度/[类型]无法取消引用

标签 java integer double

我已经四处寻找了很多,但我就是找不到一个好的解决方案......

Point mouse = MouseInfo.getPointerInfo().getLocation();

int dx = (BULLET_SPEED*Math.abs(x - mouse.getX()))/
                    (Math.abs(y - mouse.getY()) + Math.abs(x - mouse.getX()))*
                    (x - mouse.getX())/Math.abs(x - mouse.getX());

在这个星座中,我得到:当我将 (x - mouse.getX()) 更改为 (x - mouse.getX()).doubleValue( ) 它说 double 不能被取消引用,当我在某处添加 intValue() 时,它说 int 不能被取消引用。我的错误是什么?

[x, y 是整数 | BULLET_SPEED 是一个 static final int]

谢谢!

最佳答案

我将 xyBULLET_SPEED 存储为 double,以 double 执行所有算术,然后将其转换为 int 作为最终值步骤。

关于java - 可能会损失精度/[类型]无法取消引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2873634/

相关文章:

java - BigDecimal 方法返回模糊结果,为什么会发生这种情况?

java - Jstack 和没有足够的存储空间来处理这个命令

java - IntelliJ 仅打印所需输出的一部分(Java)

javascript - 负数和正数的正则表达式

整数的可计算大小

java - 检查输入是否为数字时出现逻辑错误,如果不是则重新请求用户输入直到有效

java - 如何修复通过 Telnet 发送到 Java 中的 Inputstream 的退格键?

java - 如何更改对象选择字段标题的颜色

java - 如何在 Java 中将 md5 哈希转换为整数类型?

c++使用stod的getline()的总和