Moin,
Verstehe nicht, was hier ab geht ... Wenn ich Durchmesser 5 eingebe, dann kommt raus:
Also 19.634954084936208 gegen 19.63495408493621 den Unterschied sieht hoffentlich jeder.
Java:
public interface Transformator {
Square transformCircleToSquareByArea(Circle circle);
}
public class TransformatorImpl implements Transformator {
@Override
public Square transformCircleToSquareByArea(Circle circle) {
return Square.byArea(circle.area);
}
}
public class Circle {
public final double diameter;
public final double radius;
public final double area;
public Circle(double diameter) {
this.diameter = diameter;
this.radius = diameter / 2.0;
this.area = radius * radius * Math.PI;
}
@Override
public String toString() {
return "Circle{" +
"diameter=" + diameter +
", radius=" + radius +
", area=" + area +
'}';
}
}
public class Square {
public final double sideLength;
public final double area;
public final double diagonal;
public Square(double sideLength) {
this.sideLength = sideLength;
this.area = sideLength * sideLength;
this.diagonal = Math.sqrt(2.0 * area);
}
public static Square byArea(double area) {
double side = Math.pow(area, 0.5);
return new Square(side);
}
public static Square byDiagonal(double diagonal) {
double area = diagonal * diagonal / 2.0;
double side = Math.pow(area, 0.5);
return new Square(side);
}
@Override
public String toString() {
return "Square{" +
"sideLength=" + sideLength +
", area=" + area +
", diagonal=" + diagonal +
'}';
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
System.out.println("Enter circle diameter:");
double diameter = new Scanner(System.in).nextDouble();
Circle circle = new Circle(diameter);
Square square = new TransformatorImpl().transformCircleToSquareByArea(circle);
System.out.println("You entered:");
System.out.println("circle = " + circle);
System.out.println("That has the same area as:");
System.out.println("square = " + square);
}
}
Verstehe nicht, was hier ab geht ... Wenn ich Durchmesser 5 eingebe, dann kommt raus:
Code:
Enter circle diameter:
5
You entered:
circle = Circle{diameter=5.0, radius=2.5, area=19.634954084936208}
That has the same area as:
square = Square{sideLength=4.43113462726379, area=19.63495408493621, diagonal=6.266570686577502}
Also 19.634954084936208 gegen 19.63495408493621 den Unterschied sieht hoffentlich jeder.