Почему делают подразделение (/), операторы ведут себя по-другому в VB.NET и C#?

При создании новых проектов в C# и VB.NET то пойдите непосредственно в Непосредственном Окне и введите это:

? 567 / 1000

C# возвратится 0, в то время как VB.NET возвратится 0.567.

Для получения того же результата в C# необходимо ввести

? 567 / 1000.0

Почему там это различие? Почему C# требует явной десятичной точки после 1000?

22
задан John Rudy 23 December 2009 в 15:09
поделиться

5 ответов

Оператор / в C # для целочисленных операндов выполняет операцию «целочисленного деления» (эквивалентную оператору \ в VB.NET ). Для VB.NET это «нормальное» деление (даст дробный результат). В C # для этого вам нужно явно привести по крайней мере один операнд к типу с плавающей запятой (например, double ).

34
ответ дан 29 November 2019 в 04:09
поделиться

Поскольку в VB.NET оператор / определен для возврата результата с плавающей запятой. Он расширяет свои входные данные до double и выполняет деление. В C # оператор / выполняет целочисленное деление, когда оба ввода являются целыми числами.

См. MSDN для VB.NET .

Делит два числа и возвращает результат с плавающей запятой. .

Перед выполнением деления любые целочисленные выражения расширяются до Double.

См. MSDN для C # .

Оператор деления (/) делит первый операнд на второй. Все числовые типы имеют предопределенные операторы деления.

Когда вы делите два целых числа, результатом всегда будет целое число.

Чтобы получить ту же семантику в VB.NET, что и оператор / для целых чисел в C #, используйте оператор \ .

Делит два числа и возвращает целочисленный результат.

11
ответ дан 29 November 2019 в 04:09
поделиться

По умолчанию C # обрабатывает 576 / 1000 как целочисленное деление, поэтому в результате вы получите целое число.

В VB.NET это обрабатывается как деление с плавающей запятой.

Путем добавления «.0»

3
ответ дан 29 November 2019 в 04:09
поделиться

Языки разные. В C # компилятор интерпретирует эти числа как целые числа и использует целочисленное деление. В VB.NET компилятор использует деление с плавающей запятой.

2
ответ дан 29 November 2019 в 04:09
поделиться

Справочник по языку C #

Справочник по языку VB.Net

VB.Net имеет как оператор /, так и оператор \. / является оператором деления с плавающей запятой.

2
ответ дан 29 November 2019 в 04:09
поделиться
Другие вопросы по тегам:

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