Я довольно новичок в Java, и мне нужна помощь в написании кода, который упростит квадратную формулу. Прямо сейчас моя программа усекает два решения до двух десятичных знаков. Но я не знаю, как упростить квадрат дискриминанта. Например, если дискриминант равен 8, то я бы хотел, чтобы программа выводила 2√2. Можете ли вы предоставить мне код, необходимый для этого?
package quadraticprogram;
//This imports the DecimalFormat class, Scanner class, and all other Java classes.
import java.text.DecimalFormat;
import java.util.Scanner;
import java.util.*;
public class QuadraticProgram {
public static void main(String[] args) {
int a, A;
Scanner scan = new Scanner (System.in);
System.out.println ("Use integer value, enter minimum value of a:");
a = scan.nextInt();
System.out.println ("Use integer value, enter maximum value of A:");
A = scan.nextInt();
Random generator = new Random();
// Generate random integers in the range from a to A
// and assign them to numa, numb, and numc
double numa = generator.nextInt(A - a + 1) + a;
double numb = generator.nextInt(A - a + 1) + a;
double numc = generator.nextInt(A - a + 1) + a;
System.out.println ("numa" + numa);
System.out.println ("numb" + numb);
System.out.println ("numc" + numc);
// Define d as the discriminant and take its square root
double d;
d = ((numb*numb)-(4*numa*numc));
double r = Math.sqrt(d);
// Calculate the two solutions
double s = ((-numb + r)/(2*numa));
double S = ((-numb - r)/(2*numa));
// Truncate the two solutions to two decimal places.
DecimalFormat fmt = new DecimalFormat ("0.##");
// If the discriminant is negative there are no real solutions.
if (d<0) {
System.out.println("No Real Solutions");
} else {
// Print both solutions if the discriminant is not negative
System.out.print(fmt.format(s));
System.out.println("," + fmt.format(S));
}
}
}
Прямо сейчас в программе пользователь вводит минимальное целое число a и максимальное целое число A. Затем генерируются случайные двойные значения numa, numb и numc, которые находятся между a и A. Затем программа вычисляет дискриминант, д, как двойной. Затем берется квадратный корень d, который является r. Затем программа заканчивает вычисление двух решений s и S. Затем программа печатает два решения, если дискриминант не меньше 0, и усекает их до двух десятичных разрядов.