Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/16: Рейтинг темы: голосов - 16, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 05.10.2018
Сообщений: 27

Проблема округления чисел

03.11.2018, 11:37. Показов 3315. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На вход программа получает строку где записаны координаты вершин треугольника (X1 Y1 X2 Y2 X3 Y3)
Необходимо вывести площадь треугольника.
Проблема: при вводе чисел 0 0 0 3 3 0, должно вывести число 4.5, но у меня выводит 5.

Код:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
 
public class Program
{
    public static void Main(string[] args)
    {
        string[] s = Console.ReadLine().Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);
        double[] i = Array.ConvertAll(s, double.Parse);
        double one = (i[2] - i[0]) * (i[2] - i[0]) + (i[3] - i[1]) * (i[3] - i[1]);
        one = Math.Sqrt(one);
        double two = (i[4] - i[0]) * (i[4] - i[0]) + (i[5] - i[1]) * (i[5] - i[1]);
        two = Math.Sqrt(two);
        double three = (i[4] - i[2]) * (i[4] - i[2]) + (i[5] - i[3]) * (i[5] - i[3]);
        three = Math.Sqrt(three);
        double p = (one + two + three) * 0.5;
        double SQ = p * (p - one) * (p - two) * (p - three);
        SQ = Math.Sqrt(SQ);
        SQ = Math.Abs(SQ);
        Console.WriteLine("{0:0}", SQ);
    }
}
P.s. Проблема еще в том, что нужно вывести с точностью до одного знака после запятой, мне кажется, что может быть и здесь проблема. Или какой-то метод округляет число.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.11.2018, 11:37
Ответы с готовыми решениями:

Функция округления чисел
Здравствуйте, подскажите пожалуйста. Написала функцию округления цифр void RoundingFunction(double RoundingVariable, int&...

Функция округления чисел
Здравствуйте, Помогите с простым фукнциями. Есть 2 числа. Одно число надо округлить до целого числа (т.е. даже 4,9 надо округлить до 4)...

Округления чисел в разных СС
Приветствую Вас дорогие форумчане, поздравляю вас наступающим праздником. Задача: Написать программу округляющую число до целого в...

5
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
03.11.2018, 11:50
Лучший ответ Сообщение было отмечено ITSSS как решение

Решение

Для вывода на экран с точностью до одного знака после запятой. Выведет с десятичной запятой.
C#
1
Console.WriteLine($"{SQ:f1}");
Для вывода десятичной точки:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using System;
using System.Globalization;
 
namespace Question2344831
{
    class Program
    {
        static void Main(string[] args)
        {
            // Установить локаль, эквивалентную en-us
            CultureInfo.CurrentCulture = CultureInfo.InvariantCulture;
 
            string[] s = Console.ReadLine().Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);
            double[] i = Array.ConvertAll(s, double.Parse);
            double one = (i[2] - i[0]) * (i[2] - i[0]) + (i[3] - i[1]) * (i[3] - i[1]);
            one = Math.Sqrt(one);
            double two = (i[4] - i[0]) * (i[4] - i[0]) + (i[5] - i[1]) * (i[5] - i[1]);
            two = Math.Sqrt(two);
            double three = (i[4] - i[2]) * (i[4] - i[2]) + (i[5] - i[3]) * (i[5] - i[3]);
            three = Math.Sqrt(three);
            double p = (one + two + three) * 0.5;
            double SQ = p * (p - one) * (p - two) * (p - three);
            SQ = Math.Sqrt(SQ);
            SQ = Math.Abs(SQ);
            Console.WriteLine($"{SQ:f1}");
        }
    }
}
1
0 / 0 / 0
Регистрация: 05.10.2018
Сообщений: 27
03.11.2018, 11:51  [ТС]
В программе будут выводиться и целые числа, но необходимо, чтобы целые выводил без дробной части, а дробные как дробные.
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
03.11.2018, 11:53
Лучший ответ Сообщение было отмечено ITSSS как решение

Решение

ITSSS, тогда ещё проще:
C#
1
 Console.WriteLine(SQ);
Но вопрос локали всегда остается актуальным. Десятичная точка не равна десятичной запятой.
1
0 / 0 / 0
Регистрация: 05.10.2018
Сообщений: 27
03.11.2018, 12:09  [ТС]
Цитата Сообщение от amr-now Посмотреть сообщение
ITSSS, тогда ещё проще:
C#
1
 Console.WriteLine(SQ);
Но вопрос локали всегда остается актуальным. Десятичная точка не равна десятичной запятой.
Хм, но ведь по умолчанию ставится точка?
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
03.11.2018, 12:18
Лучший ответ Сообщение было отмечено ITSSS как решение

Решение

ITSSS, на всех компьютерах по-разному.
Если локаль не трогать,
тогда если компьютер настроен на десятичную точку, то пользователь вводит с десятичной точкой, и на экран вывод с десятичной точкой;
а если компьютер настроен на десятичную запятую, то пользователь вводит с десятичной запятой, и на экран вывод с десятичной запятой.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.11.2018, 12:18
Помогаю со студенческими работами здесь

Программа округления натуральных чисел
Как составить программу округления натуральных чисел в QBASIC? Помогите пожалуйста... Заранее спасибо!:)

Как избежать округления дробных чисел
как сделать что бы не округляло ??? float t; float z,m; using namespace std; void main(void) { m=-pow(5,2)/2;

Как избежать округления чисел в функции
Необходимо вводить последовательность действительных чисел. Из каждого числа этой последовательности необходимо "отбрасывает"...

Разница округления чисел в JS в google chrome
В общем пишу такое alert(5-4.54); в google chrome вылазит окошко в котором результат 0.45999999999999996 Бред полнейший,...

Как избежать округления дробных чисел
не виводит дробь а только целие числа. где проблема ? #include <iostream.h> #include <math.h> int mat(double x,double...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru