将双精度转换为int

时间:2017-02-24 21:19:38

标签: java

我有一个项目需要使用getX和getY在一个坐标上移动玩家,但是,我对如何将getX和getY从double转换为int感到困惑,所以我可以在绘图面板中播放它们。

2 个答案:

答案 0 :(得分:0)

你想把你的双重视为int,但是你需要注意你的投射方式,因为如果你想让你的动作准确你想要x.5及以上的值被四舍五入并且值低于x.5向下舍入。

转换将始终向下舍入,因此正确舍入的一种好方法是在转换为int之前将.5添加到所有双打。

以下是一些例子

  {
  "took": 9,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "failed": 0
  },
  "hits": {
    "total": 2077,
    "max_score": 1,
    "hits": [
      {
        "_index": "xxx",
        "_type": "xxx",
        "_id": "xxxx",
        "_score": 1,
        "fields": {
          "a": [
            0
          ],
          "b": [
            "xyz"
          ]
        }
      }
    ]
  }
}

使用我们的方法可以看看这两个双打将如何投放

double = 1.1
int (double) = 1

double = 1.7
int (double) = 1 \\ Note that we will likely want this to be 2

请注意,现在我们的高于x.5的双打将被正确地舍入。

答案 1 :(得分:0)

只需转换为int将截断double。因此,在决定如何获取int之前,需要指定您真正想要的结果。例如,如果double值为2.999,您希望int为2还是3?

如果你想要最接近的int(上面的3),那么使用返回long的Math.round(d)。

相关问题