# BigInteger.Abs(BigInteger) 方法

## 定义

``````public:
static System::Numerics::BigInteger Abs(System::Numerics::BigInteger value);``````
``public static System.Numerics.BigInteger Abs (System.Numerics.BigInteger value);``
``static member Abs : System.Numerics.BigInteger -> System.Numerics.BigInteger``
``Public Shared Function Abs (value As BigInteger) As BigInteger``

value
BigInteger

#### 返回

`value` 的绝对值。The absolute value of `value`.

## 示例

``````using System;
using System.IO;
using System.Numerics;
using System.Runtime.Serialization.Formatters.Binary;

[Serializable] public struct SignAndMagnitude
{
public int Sign;
public byte[] Bytes;
}

public class Example
{
public static void Main()
{
FileStream fs;
BinaryFormatter formatter = new BinaryFormatter();

BigInteger number = BigInteger.Pow(Int32.MaxValue, 20) * BigInteger.MinusOne;
Console.WriteLine("The original value is {0}.", number);
SignAndMagnitude sm = new SignAndMagnitude();
sm.Sign = number.Sign;
sm.Bytes = BigInteger.Abs(number).ToByteArray();

// Serialize SignAndMagnitude value.
fs = new FileStream(@".\data.bin", FileMode.Create);
formatter.Serialize(fs, sm);
fs.Close();

// Deserialize SignAndMagnitude value.
fs = new FileStream(@".\data.bin", FileMode.Open);
SignAndMagnitude smRestored = (SignAndMagnitude) formatter.Deserialize(fs);
fs.Close();
BigInteger restoredNumber = new BigInteger(smRestored.Bytes);
restoredNumber *= sm.Sign;
Console.WriteLine("The deserialized value is {0}.", restoredNumber);
}
}
// The example displays the following output:
//    The original value is -4.3510823966323432743748744058E+186.
//    The deserialized value is -4.3510823966323432743748744058E+186.
``````
``````Imports System.IO
Imports System.Numerics
Imports System.Runtime.Serialization.Formatters.Binary

<Serializable> Public Structure SignAndMagnitude
Dim Sign As Integer
Dim Bytes() As Byte
End Structure

Module Example
Public Sub Main()
Dim fs As FileStream
Dim formatter As New BinaryFormatter()

Dim number As BigInteger = BigInteger.Pow(Int32.MaxValue, 20) * BigInteger.MinusOne
Console.WriteLine("The original value is {0}.", number)
Dim sm As New SignAndMagnitude()
sm.Sign = number.Sign
sm.Bytes = BigInteger.Abs(number).ToByteArray()

' Serialize SignAndMagnitude value.
fs = New FileStream(".\data.bin", FileMode.Create)
formatter.Serialize(fs, sm)
fs.Close()

' Deserialize SignAndMagnitude value.
fs = New FileStream(".\data.bin", FileMode.Open)
Dim smRestored As SignAndMagnitude = DirectCast(formatter.Deserialize(fs), SignAndMagnitude)
fs.Close()
Dim restoredNumber As New BigInteger(smRestored.Bytes)
restoredNumber *= sm.Sign
Console.WriteLine("The deserialized value is {0}.", restoredNumber)
End Sub
End Module
' The example displays the following output:
'    The original value is -4.3510823966323432743748744058E+186.
'    The deserialized value is -4.3510823966323432743748744058E+186.
``````

## 注解

`value` 参数`value` parameter 返回值Return value
`value` > = 0`value` >= 0 `value`
`value` < 0`value` < 0 `value` * -1`value` * -1

Abs 方法等效于基元数值类型的 Math.Abs 方法。The Abs method is equivalent to the Math.Abs method for the primitive numeric types.