Поделиться через


Complex.Explicit Оператор

Определение

Определяет явное преобразование между объектом типа Complex и другим типом.

Перегрузки

Имя Описание
Explicit(UInt128 to Complex)

Явным образом преобразует значение в UInt128 комплексное число двойной точности.

Explicit(BigInteger to Complex)

Определяет явное преобразование значения BigInteger в комплексное число.

Explicit(Decimal to Complex)

Определяет явное преобразование значения Decimal в комплексное число.

Explicit(Int128 to Complex)

Явным образом преобразует значение в Int128 комплексное число двойной точности.

Explicit(UInt128 to Complex)

Источник:
Complex.cs
Источник:
Complex.cs
Источник:
Complex.cs
Источник:
Complex.cs

Важный

Этот API не совместим с CLS.

Явным образом преобразует значение в UInt128 комплексное число двойной точности.

public:
 static explicit operator System::Numerics::Complex(UInt128 value);
[System.CLSCompliant(false)]
public static explicit operator System.Numerics.Complex(UInt128 value);
[<System.CLSCompliant(false)>]
static member op_Explicit : UInt128 -> System.Numerics.Complex
Public Shared Narrowing Operator CType (value As UInt128) As Complex

Параметры

value
UInt128

Преобразуемое значение.

Возвращает

value преобразуется в комплексное число двойной точности.

Атрибуты

Применимо к

Explicit(BigInteger to Complex)

Источник:
Complex.cs
Источник:
Complex.cs
Источник:
Complex.cs
Источник:
Complex.cs

Определяет явное преобразование значения BigInteger в комплексное число.

public:
 static explicit operator System::Numerics::Complex(System::Numerics::BigInteger value);
public static explicit operator System.Numerics.Complex(System.Numerics.BigInteger value);
static member op_Explicit : System.Numerics.BigInteger -> System.Numerics.Complex
Public Shared Narrowing Operator CType (value As BigInteger) As Complex

Параметры

value
BigInteger

Значение, преобразуемое в комплексное число.

Возвращает

Комплексное число, вещественная часть которого равна параметру value, а мнимая часть равна нулю.

Примеры

В следующем примере показано явное преобразование значений BigInteger в Complex значения.

BigInteger[] numbers= {
                 ((BigInteger) Double.MaxValue) * 2,
                 BigInteger.Parse("901345277852317852466891423"),
                 BigInteger.One };
foreach (BigInteger number in numbers)
{
  Complex c1 = (Complex) number;
   Console.WriteLine(c1);
}
// The example displays the following output:
//       (Infinity, 0)
//       (9.01345277852318E+26, 0)
//       (1, 0)
    let numbers =
        [ (bigint Double.MaxValue) * 2I
          BigInteger.Parse "901345277852317852466891423"
          BigInteger.One ]

    for number in numbers do
        let c1 = Complex(float number, 0.)
        printfn $"{number, 30}  -->  {c1}"
// The example displays the following output:
//       (Infinity, 0)
//       (9.01345277852318E+26, 0)
//       (1, 0)
Dim numbers() As BigInteger = {
                 CType(Double.MaxValue, BigInteger) * 2, 
                 BigInteger.Parse("901345277852317852466891423"), 
                 BigInteger.One } 
For Each number In numbers
  Dim c1 As System.Numerics.Complex = CType(number, 
                                    System.Numerics.Complex)
   Console.WriteLine(c1)
Next        
' The example displays the following output:
'       (Infinity, 0)
'       (9.01345277852318E+26, 0)
'       (1, 0)

Замечания

Операторы явного преобразования определяют типы, которые можно преобразовать в Complex объект . Языковые компиляторы не выполняют это преобразование автоматически, так как это может привести к потере данных. Вместо этого они выполняют преобразование только в том случае, если используется оператор приведения (в C#) или функция преобразования (например CType , в Visual Basic). В противном случае отображается ошибка компилятора.

Преобразование BigInteger значения в веществительную часть комплексного числа может привести к потере точности, так как Double, который является типом свойства комплексного числа Real , имеет меньше значимых цифр, чем BigInteger.

Если преобразование завершается неудачно из-за того, что BigInteger значение выходит за пределы Double диапазона типа, операция не выдает OverflowException. Вместо этого, если value меньше MinValue, результатом является комплексное число, которое имеет Real значение свойства, равное NegativeInfinity. Если value значение больше MaxValue, результатом является комплексное число, которое имеет Real значение свойства, равное PositiveInfinity.

Применимо к

Explicit(Decimal to Complex)

Источник:
Complex.cs
Источник:
Complex.cs
Источник:
Complex.cs
Источник:
Complex.cs

Определяет явное преобразование значения Decimal в комплексное число.

public:
 static explicit operator System::Numerics::Complex(System::Decimal value);
public static explicit operator System.Numerics.Complex(decimal value);
static member op_Explicit : decimal -> System.Numerics.Complex
Public Shared Narrowing Operator CType (value As Decimal) As Complex

Параметры

value
Decimal

Значение, преобразуемое в комплексное число.

Возвращает

Комплексное число, вещественная часть которого равна параметру value, а мнимая часть равна нулю.

Примеры

В следующем примере показано явное преобразование значений Decimal в Complex значения.

decimal[] numbers = { Decimal.MinValue, -18.35m, 0m, 1893.019m,
                      Decimal.MaxValue };
foreach (decimal number in numbers)
{
   System.Numerics.Complex c1 = (System.Numerics.Complex) number;
   Console.WriteLine("{0,30}  -->  {1}", number, c1);
}
// The example displays the following output:
//    -79228162514264337593543950335  -->  (-7.92281625142643E+28, 0)
//                            -18.35  -->  (-18.35, 0)
//                                 0  -->  (0, 0)
//                          1893.019  -->  (1893.019, 0)
//     79228162514264337593543950335  -->  (7.92281625142643E+28, 0)
    let numbers = [ Decimal.MinValue; -18.35m; 0m; 1893.019m; Decimal.MaxValue ]

    for number in numbers do
        let c1 = Complex(float number, 0.)
        printfn $"{number, 30}  -->  {c1}"

// The example displays the following output:
//    -79228162514264337593543950335  -->  (-7.92281625142643E+28, 0)
//                            -18.35  -->  (-18.35, 0)
//                                 0  -->  (0, 0)
//                          1893.019  -->  (1893.019, 0)
//     79228162514264337593543950335  -->  (7.92281625142643E+28, 0)
Dim numbers() As Decimal = { Decimal.MinValue, -18.35d, 0d, 1893.019d, 
                             Decimal.MaxValue }
For Each number In numbers
   Dim c1 As System.Numerics.Complex = CType(number, 
                                             System.Numerics.Complex)
   Console.WriteLine("{0,30}  -->  {1}", number, c1)
Next   
' The example displays the following output:
'    -79228162514264337593543950335  -->  (-7.92281625142643E+28, 0)
'                            -18.35  -->  (-18.3500003814697, 0)
'                                 0  -->  (0, 0)
'                          1893.019  -->  (1893.01904296875, 0)
'     79228162514264337593543950335  -->  (7.92281625142643E+28, 0)

Замечания

Операторы явного преобразования определяют типы, которые можно преобразовать в Complex объект . Языковые компиляторы не выполняют это преобразование автоматически, так как это может привести к потере данных. Вместо этого они выполняют преобразование только в том случае, если используется оператор приведения (в C#) или функция преобразования (например CType , в Visual Basic). В противном случае отображается ошибка компилятора.

Преобразование Decimal значения в веществительную часть комплексного числа может привести к потере точности, так как Double, который является типом свойства комплексного числа Real , имеет меньше значимых цифр, чем Decimal.

Применимо к

Explicit(Int128 to Complex)

Источник:
Complex.cs
Источник:
Complex.cs
Источник:
Complex.cs
Источник:
Complex.cs

Явным образом преобразует значение в Int128 комплексное число двойной точности.

public:
 static explicit operator System::Numerics::Complex(Int128 value);
public static explicit operator System.Numerics.Complex(Int128 value);
static member op_Explicit : Int128 -> System.Numerics.Complex
Public Shared Narrowing Operator CType (value As Int128) As Complex

Параметры

value
Int128

Преобразуемое значение.

Возвращает

value преобразуется в комплексное число двойной точности.

Применимо к