I am working on a really simple point class but I am getting an error and I can't pinpoint where the String/double problem is happening or how to fix it.
public String getDistance (double x1,double x2,double y1,double y2) {
double X= Math.pow((x2-x1),2);
double Y= Math.pow((y2-y1),2);
double distance = Math.sqrt(X + Y);
DecimalFormat df = new DecimalFormat("#.#####");
String pointsDistance = (""+ distance);
pointsDistance= df.format(pointsDistance);
return pointsDistance;
}
and the test code
double x1=p1.getX(),
x2=p2.getX(),
y1=p1.getY(),
y2=p2.getY();
pointsDistance= p1.getDistance(x1,x2,y1,y2);
EDIT
I forgot to add the error I'm receiving:
Exception in thread "main" java.lang.IllegalArgumentException: Cannot format given Object as a Number
at java.text.DecimalFormat.format(Unknown Source)
at java.text.Format.format(Unknown Source)
at Point.getDistance(Point.java:41)
at PointTest.main(PointTest.java:35)
You passed a String
, but the format
method expects a double
and returns a String
. Change from
String pointsDistance = (""+ distance);
pointsDistance= df.format(pointsDistance);
to
String pointsDistance = df.format(distance);