При создании новых проектов в C# и VB.NET то пойдите непосредственно в Непосредственном Окне и введите это:
? 567 / 1000
C# возвратится 0, в то время как VB.NET возвратится 0.567.
Для получения того же результата в C# необходимо ввести
? 567 / 1000.0
Почему там это различие? Почему C# требует явной десятичной точки после 1000?
Оператор / в C # для целочисленных операндов выполняет операцию «целочисленного деления» (эквивалентную оператору \ в VB.NET ). Для VB.NET это «нормальное» деление (даст дробный результат). В C # для этого вам нужно явно привести по крайней мере один операнд к типу с плавающей запятой (например, double
).
Поскольку в VB.NET оператор /
определен для возврата результата с плавающей запятой. Он расширяет свои входные данные до double
и выполняет деление. В C # оператор /
выполняет целочисленное деление, когда оба ввода являются целыми числами.
См. MSDN для VB.NET .
Делит два числа и возвращает результат с плавающей запятой. .
Перед выполнением деления любые целочисленные выражения расширяются до Double.
См. MSDN для C # .
Оператор деления (/) делит первый операнд на второй. Все числовые типы имеют предопределенные операторы деления.
Когда вы делите два целых числа, результатом всегда будет целое число.
Чтобы получить ту же семантику в VB.NET, что и оператор /
для целых чисел в C #, используйте оператор \
.
Делит два числа и возвращает целочисленный результат.
По умолчанию C # обрабатывает 576 / 1000 как целочисленное деление, поэтому в результате вы получите целое число.
В VB.NET это обрабатывается как деление с плавающей запятой.
Путем добавления «.0»
Языки разные. В C # компилятор интерпретирует эти числа как целые числа и использует целочисленное деление. В VB.NET компилятор использует деление с плавающей запятой.
VB.Net имеет как оператор /, так и оператор \. / является оператором деления с плавающей запятой.