@Kircha

Поможете с шарпом?

double b;
            const double PI = 3.14159265;
            double result2;

            Console.WriteLine("1/4 - 1/4(sin(5/2*PI - 8b)) = ...");
            Console.WriteLine("Введите b");
            b = Convert.ToDouble(Console.ReadLine());

            result2 = 1 / 4 - (1 / 4 * Math.Sin((5 / 2 * PI) - (8 * b)));
            result2 = Math.Round(result2, 3);

            Console.WriteLine("1/4 - 1/4(sin(5/2*PI - 8b)) = " + result2);

не корректно выводит result2. Буду очень благодарен если укажете на ошибку
  • Вопрос задан
  • 272 просмотра
Решения вопроса 1
1 / 4 == 0, потому что 1 и 4 целые константы, а при деление целых, вещественные получится не могут. Хочешь тип double, то пиши 1D / 4D
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
mindtester
@mindtester Куратор тега C#
http://iczin.su/hexagram_48
ну или так
result2 = 1.0 / 4.0 - (1.0 / 4.0 * Math.Sin((5.0 / 2.0 * PI) - (8.0 * b)));
Ответ написан
Комментировать
@sokolov_andrei2013
Во-первых, зачем тебе переменная PI? Существует Math.PI с типом double. Дальше. Зачем тебе лишнее вычисление типа 1/4 если можно написать 0.25 и 5/2 заменить на 2.5?
Далее вывод на экран не особенно правильный. Можно заменить на:
Console.WriteLine( "0.25 - 0.25(sin(2.5*PI - 8b)) ={0} ", result2).
Вот это будет более правильный вывод. Далее ещё необходимо уточнить это вся программа или какой то метод. Если метод, то вывод на экран в методе является ошибкой ООП.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы