Java 是否有一种简单的方法允许Point接受双打,或者是否有其他选择?

Java 是否有一种简单的方法允许Point接受双打,或者是否有其他选择?,java,Java,我正在用Java做一些计算,它工作得很好,但我注意到我的数字与python实现略有出入。我花了整整一天的时间,但我相信这是因为我必须将数据转换为INT才能使用point。我是个新手,所以我可能错了,但我在报纸上看到它似乎只接受ints(也许我误解了它)。我真正喜欢point的原因是因为我的数据格式相似,我不想重复。数据格式示例:(1,0)、(1,2)、(10,2)等 我想我的两个问题是: 有没有办法拿到双打的分数?还是初学者真的很难做到 请看点主要用于图形用户界面(GUI)目的,其中有整数像素

我正在用Java做一些计算,它工作得很好,但我注意到我的数字与python实现略有出入。我花了整整一天的时间,但我相信这是因为我必须将数据转换为INT才能使用point。我是个新手,所以我可能错了,但我在报纸上看到它似乎只接受ints(也许我误解了它)。我真正喜欢point的原因是因为我的数据格式相似,我不想重复。数据格式示例:(1,0)、(1,2)、(10,2)等

我想我的两个问题是:

  • 有没有办法拿到双打的分数?还是初学者真的很难做到
  • <如果不可能的话,有没有其他的数据结构我可以用来实现同样的事情(哈希图的思想,但我认为它将用(1,1)替换(1,1),我的程序会认为是唯一的)?< /LI>
    请看

    主要用于图形用户界面(GUI)目的,其中有整数像素值。请改为尝试。

    您可以使用点API中的
    setLocation()
    方法将双值传递给点对象:

    编辑

    有人指出,Point类setLocation()方法舍入为整数值,因此可能不是您想要的。我的错误


    但是该类有一个接受double的构造函数,这可能是您想要的。

    在您链接到的API文档中,您可以看到:

    从类java.awt.geom.Point2D继承的嵌套类

    Point2D.Double
    Point2D.Float

    例如,您可以使用
    Point2D.Double

    Point2D.Double p = new Point2D.Double(1.0, 2.0);
    

    请不要链接到旧的JavaDocs。它似乎比抱怨更有用@LouisWasserman修复它要有用得多,但如果没有一些“压力”,人们将不会学习甚至注意到它;)
    setLocation(double,double)
    将对值进行四舍五入,从而存储整数值。因此,这在这里不是一个选项。@Thomas-hmm,我不知道它是四舍五入的。谢谢。
    上的JavaDoc说它以整数精度处理坐标。因此,必须采用某种形式的舍入。查看源代码,您会发现:
    this.x=(int)Math.floor(x+0.5)等等@Thomas我对PointAPI不太熟悉。我知道有一个
    setLocation()
    将double作为参数,但我并没有花太多时间使用点对象。谢谢你的评论。