Программа, решающая квадратные уравнения выдает некорректный результат - C#
Формулировка задачи:
Пишу программу решающую квадратные уравнения, вроде все считает, считает правельно, но дает ответ допустим должно получится х1 = 1 х2 = -3 он выводит ответ х1 = 1,24235236236236235 и х2= -3, 352523523523523
Как убрать все числа после запятой???? пробовал Math.Round(x1, 1) или 0 но он их округляет.
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { double q, x1, x2; int a, b, c; Console.Write("a = "); a = Convert.ToInt32(Console.ReadLine()); Console.Write("b = " ); b = Convert.ToInt32(Console.ReadLine()); Console.Write("c = " ); c = Convert.ToInt32(Console.ReadLine()); q = Math.Pow(b,2) - 4 * a * c; if (b < 0) { Console.WriteLine("Дискриминант отрицательный, корней нет"); } else if (a > 0) { x1 = (-b + Math.Sqrt(q - 4 * a * c)) / (2 * a); x2 = (-b - Math.Sqrt(q - 4 * a * c)) / (2 * a); Console.Write("Дискриминант = " + q + "\nх1 = " + x1 + "\nx2= " + x2); } Console.ReadLine(); } } }
Решение задачи: «Программа, решающая квадратные уравнения выдает некорректный результат»
textual
Листинг программы
public static void Main() { double q, x1, x2; int a, b, c; Console.Write("a = "); a = Convert.ToInt32(Console.ReadLine()); Console.Write("\nb = "); b = Convert.ToInt32(Console.ReadLine()); Console.Write("\nc = "); c = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(); if (a == 0) { if (b == 0) Console.WriteLine(c == 0 ? "x - любое." : "Нет решений."); else Console.WriteLine("Решение: x = -c/b = {0}/{1} = {2}.", -c, b, -c / b); return; } q = b * b - 4 * a * c; if (Math.Abs(q) < 1E-12) { Console.WriteLine("Решение: x = -b/2a = {0}/{1} = {2}.", -b, 2 * a, -b / (2 * a)); return; } if (q < 0) { Console.WriteLine("Нет решений. Дискриминант = {0}.", q); return; } x1 = (-b + Math.Sqrt(q)) / 2 * a; x2 = (-b - Math.Sqrt(q)) / 2 * a; Console.WriteLine("Решение: x1 = [-b + sqrt(q)]/2a = [{0} + {1}]/{2} = {3} \nx2 = [-b - sqrt(q)]/2a = [{0} - {1}]/{2} = {4}", -b, Math.Sqrt(q), 2 * a, x1, x2); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д