Проблема в VS, неправильное деление [дубликат]

206
06 апреля 2017, 16:39

На данный вопрос уже ответили:

  • 25 / 100 = 0, Почему? 3 ответа

Вопрос возможно глупый, не могу понять, начинаю делать число 8/30 и показывает в консоли 0, то есть отрицательных чисел нет, и десятичных тоже, в чем проблема?

double g = 8 / 30;
Console.Write(g);
Console.ReadKey();

даже такое делю, и показывает 0

Answer 1

Скорее всего так должно сработать double g = 8.0 / 30;

Answer 2

Необходимо явное приведение значений.

Обратите внимание что числа 8 и 30 по умолчанию имеют тип int.

вот если бы вы сделали вот так:

double i = 8, j = 30;
double k = i / j;

Вы бы получили нужное вам значение.

В развёрнутом виде ваш пример выглядит вот так:

int i = 8;
int j = 30;
double k = i/j
// целочисленное / целочисленное
// Чтобы деление произвелось корректно, можно один или оба операнда явно привести к типу double
double k = (double)(i/j);
double s = (double)i/j;

Прочитайте про явное приведение типов.

Answer 3

Вот так ещё лучше и более правильно:

double g = 8.0 / 30.0;
READ ALSO
Унаследованный контрол добавить на ToolBox

Унаследованный контрол добавить на ToolBox

1) Я создал отдельный класс и унаследовал в нем LabelМожно ли его теперь как-то добавить на ToolBox? После компиляции он не появляется

246
Инвалидация токена авторизации

Инвалидация токена авторизации

Есть ASPNET MVC приложение, которое предоставляет сайт и некоторое rest api

333
Создать из текста список списков

Создать из текста список списков

Добрый день! Задача описана в комментарии снизуОшибку чеккер на образовательном портале ulearn выдает такую:

413