|
|||||||
Оператор Mod (Visual Basic)
Время создания: 16.03.2020 06:47
Текстовые метки: модуль, mod
Раздел: Разные закладки - VBA
Запись: xintrea/mytetra_db_adgaver_new/master/base/1584330429vh5ygpcbk1/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
Mod operator (Visual Basic) В этой статье
Делит два числа и возвращает только остаток.Divides two numbers and returns only the remainder. result = number1 Mod number2 result number1 number2 Поддерживаемые типыSupported types все числовые типы.All numeric types. К ним относятся типы без знака и тип с плавающей запятой и Decimal.This includes the unsigned and floating-point types and Decimal. Результат представляет собой остаток после деления number1 на number2.The result is the remainder after number1 is divided by number2. Например, выражение 14 Mod 4 равно 2.For example, the expression 14 Mod 4 evaluates to 2. Примечание Существует разница между остатком и остатком в математике с различными результатами для отрицательных чисел.There is a difference between remainder and modulus in mathematics, with different results for negative numbers. Оператор Mod в Visual Basic, оператор .NET Framework op_Modulus и базовая инструкция REM Il выполняют операцию остатка.The Mod operator in Visual Basic, the .NET Framework op_Modulus operator, and the underlying rem IL instruction all perform a remainder operation. Результат операции Mod содержит знак делимого, number1, поэтому он может быть положительным или отрицательным.The result of a Mod operation retains the sign of the dividend, number1, and so it may be positive or negative. Результат всегда находится в диапазоне (-number2, number2), исключительно.The result is always in the range (-number2, number2), exclusive. Пример.For example: Public Module Example Public Sub Main() Console.WriteLine($" 8 Mod 3 = {8 Mod 3}") Console.WriteLine($"-8 Mod 3 = {-8 Mod 3}") Console.WriteLine($" 8 Mod -3 = {8 Mod -3}") Console.WriteLine($"-8 Mod -3 = {-8 Mod -3}") End Sub End Module ' The example displays the following output: ' 8 Mod 3 = 2 ' -8 Mod 3 = -2 ' 8 Mod -3 = 2 ' -8 Mod -3 = -2 Если либо number1, либо number2 является значением с плавающей запятой, возвращается остаток от деления с плавающей точкой.If either number1 or number2 is a floating-point value, the floating-point remainder of the division is returned. Тип данных результата является наименьшим типом данных, который может содержать все возможные значения, являющиеся результатом деления с типами данных number1 и number2.The data type of the result is the smallest data type that can hold all possible values that result from division with the data types of number1 and number2. Если number1 или number2 принимает значение Nothing , оно считается нулевым.If number1 or number2 evaluates to Nothing , it is treated as zero. К связанным операторам относятся следующие.Related operators include the following:
Попыток деления на нольAttempted division by zero Если number2 равен нулю, поведение оператора Mod зависит от типа данных операндов:If number2 evaluates to zero, the behavior of the Mod operator depends on the data type of the operands:
Эквивалентная формулаEquivalent formula Выражение a Mod b эквивалентно любой из следующих формул:The expression a Mod b is equivalent to either of the following formulas: a - (b * (a \ b)) a - (b * Fix(a / b)) Точность чисел с плавающей запятойFloating-point imprecision При работе с числами с плавающей запятой Помните, что они не всегда имеют точное десятичное представление в памяти.When you work with floating-point numbers, remember that they do not always have a precise decimal representation in memory. Это может привести к непредвиденным результатам некоторых операций, таких как сравнение значений и оператор Mod.This can lead to unexpected results from certain operations, such as value comparison and the Mod operator. Дополнительные сведения см. в разделе Устранение неполадок типов данных .For more information, see Troubleshooting Data Types . Оператор Mod может быть перегружен, а это означает, что класс или структура могут переопределять его поведение.The Mod operator can be overloaded, which means that a class or structure can redefine its behavior. Если код применяет Mod к экземпляру класса или структуры, включающей такую перегрузку, убедитесь, что вы понимаете его переопределенное поведение.If your code applies Mod to an instance of a class or structure that includes such an overload, be sure you understand its redefined behavior. Для получения дополнительной информации см. Operator Procedures .For more information, see Operator Procedures . В следующем примере оператор Mod используется для деления двух чисел и возврата только остатка.The following example uses the Mod operator to divide two numbers and return only the remainder. Если любое число является числом с плавающей запятой, результатом является число с плавающей запятой, представляющее остаток.If either number is a floating-point number, the result is a floating-point number that represents the remainder. Debug.WriteLine(10 Mod 5) ' Output: 0 Debug.WriteLine(10 Mod 3) ' Output: 1 Debug.WriteLine(-10 Mod 3) ' Output: -1 Debug.WriteLine(12 Mod 4.3) ' Output: 3.4 Debug.WriteLine(12.6 Mod 5) ' Output: 2.6 Debug.WriteLine(47.9 Mod 9.35) ' Output: 1.15 В следующем примере показана потенциальная неточность операндов с плавающей запятой.The following example demonstrates the potential imprecision of floating-point operands. В первой инструкции операнды являются Double, а 0,2 — бесконечно повторяющийся двоичная дробь с сохраненным значением 0.20000000000000001.In the first statement, the operands are Double, and 0.2 is an infinitely repeating binary fraction with a stored value of 0.20000000000000001. Во втором операторе символ типа литерала D применяет оба операнда Decimal, а 0,2 имеет точное представление.In the second statement, the literal type character D forces both operands to Decimal, and 0.2 has a precise representation. firstResult = 2.0 Mod 0.2 ' Double operation returns 0.2, not 0. secondResult = 2D Mod 0.2D ' Decimal operation returns 0.
|
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|