Math.Min Method 
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Returns the smaller of two numbers.
Overloads
| Min(UInt32, UInt32) | Returns the smaller of two 32-bit unsigned integers. | 
| Min(UInt16, UInt16) | Returns the smaller of two 16-bit unsigned integers. | 
| Min(Single, Single) | Returns the smaller of two single-precision floating-point numbers. | 
| Min(SByte, SByte) | Returns the smaller of two 8-bit signed integers. | 
| Min(IntPtr, IntPtr) | Returns the smaller of two native signed integers. | 
| Min(Double, Double) | Returns the smaller of two double-precision floating-point numbers. | 
| Min(Int32, Int32) | Returns the smaller of two 32-bit signed integers. | 
| Min(Int16, Int16) | Returns the smaller of two 16-bit signed integers. | 
| Min(Decimal, Decimal) | Returns the smaller of two decimal numbers. | 
| Min(Byte, Byte) | Returns the smaller of two 8-bit unsigned integers. | 
| Min(UInt64, UInt64) | Returns the smaller of two 64-bit unsigned integers. | 
| Min(Int64, Int64) | Returns the smaller of two 64-bit signed integers. | 
| Min(UIntPtr, UIntPtr) | Returns the smaller of two native unsigned integers. | 
Examples
The following example demonstrates how to use the Min method to return and display the smaller of two variables:
string str = "{0}: The lesser of {1,3} and {2,3} is {3}.";
byte     xByte1    = 1,    xByte2    = 51;	
short    xShort1   = -2,   xShort2   = 52;
int      xInt1     = -3,   xInt2     = 53;
long     xLong1    = -4,   xLong2    = 54;
float    xSingle1  = 5.0f, xSingle2  = 55.0f;
double   xDouble1  = 6.0,  xDouble2  = 56.0;
Decimal  xDecimal1 = 7m,   xDecimal2 = 57m;
// The following types are not CLS-compliant.
sbyte    xSbyte1   = 101, xSbyte2  = 111;
ushort   xUshort1  = 102, xUshort2 = 112;
uint     xUint1    = 103, xUint2   = 113;
ulong    xUlong1   = 104, xUlong2  = 114;
Console.WriteLine("Display the lesser of two values:\n");
Console.WriteLine(str, "Byte   ", xByte1, xByte2, Math.Min(xByte1, xByte2));
Console.WriteLine(str, "Int16  ", xShort1, xShort2, Math.Min(xShort1, xShort2));
Console.WriteLine(str, "Int32  ", xInt1, xInt2, Math.Min(xInt1, xInt2));
Console.WriteLine(str, "Int64  ", xLong1, xLong2, Math.Min(xLong1, xLong2));
Console.WriteLine(str, "Single ", xSingle1, xSingle2, Math.Min(xSingle1, xSingle2));
Console.WriteLine(str, "Double ", xDouble1, xDouble2, Math.Min(xDouble1, xDouble2));
Console.WriteLine(str, "Decimal", xDecimal1, xDecimal2, Math.Min(xDecimal1, xDecimal2));
Console.WriteLine("\nThe following types are not CLS-compliant:\n");
Console.WriteLine(str, "SByte  ", xSbyte1, xSbyte2, Math.Min(xSbyte1, xSbyte2));
Console.WriteLine(str, "UInt16 ", xUshort1, xUshort2, Math.Min(xUshort1, xUshort2));
Console.WriteLine(str, "UInt32 ", xUint1, xUint2, Math.Min(xUint1, xUint2));
Console.WriteLine(str, "UInt64 ", xUlong1, xUlong2, Math.Min(xUlong1, xUlong2));
/*
This example produces the following results:
Display the lesser of two values:
Byte   : The lesser of   1 and  51 is 1.
Int16  : The lesser of  -2 and  52 is -2.
Int32  : The lesser of  -3 and  53 is -3.
Int64  : The lesser of  -4 and  54 is -4.
Single : The lesser of   5 and  55 is 5.
Double : The lesser of   6 and  56 is 6.
Decimal: The lesser of   7 and  57 is 7.
The following types are not CLS-compliant:
SByte  : The lesser of 101 and 111 is 101.
UInt16 : The lesser of 102 and 112 is 102.
UInt32 : The lesser of 103 and 113 is 103.
UInt64 : The lesser of 104 and 114 is 104.
*/
open System
let print typ a b m = 
    printfn $"{typ}: The lesser of {a,3} and {b,3} is {m}."
let xByte1,    xByte2    = 1uy, 51uy
let xShort1,   xShort2   = -2s, 52s
let xInt1,     xInt2     = -3,  53
let xLong1,    xLong2    = -4L, 54L
let xSingle1,  xSingle2  = 5f,  55f
let xDouble1,  xDouble2  = 6.,  56.
let xDecimal1, xDecimal2 = 7m,  57m
// The following types are not CLS-compliant.
let xSbyte1, xSbyte2   = 101y,  111y
let xUshort1, xUshort2 = 102us, 112us
let xUint1, xUint2     = 103u,  113u
let xUlong1, xUlong2   = 104uL, 114uL
printfn "Display the lesser of two values:\n"
print "Byte   " xByte1 xByte2 (Math.Min(xByte1, xByte2))
print "Int16  " xShort1 xShort2 (Math.Min(xShort1, xShort2))
print "Int32  " xInt1 xInt2 (Math.Min(xInt1, xInt2))
print "Int64  " xLong1 xLong2 (Math.Min(xLong1, xLong2))
print "Single " xSingle1 xSingle2 (Math.Min(xSingle1, xSingle2))
print "Double " xDouble1 xDouble2 (Math.Min(xDouble1, xDouble2))
print "Decimal" xDecimal1 xDecimal2 (Math.Min(xDecimal1, xDecimal2))
printfn"\nThe following types are not CLS-compliant:\n"
print "SByte  " xSbyte1 xSbyte2 (Math.Min(xSbyte1, xSbyte2))
print "UInt16 " xUshort1 xUshort2 (Math.Min(xUshort1, xUshort2))
print "UInt32 " xUint1 xUint2 (Math.Min(xUint1, xUint2))
print "UInt64 " xUlong1 xUlong2 (Math.Min(xUlong1, xUlong2))
// This example produces the following results:
//     Display the lesser of two values:
//    
//     Byte   : The lesser of   1 and  51 is 1.
//     Int16  : The lesser of  -2 and  52 is -2.
//     Int32  : The lesser of  -3 and  53 is -3.
//     Int64  : The lesser of  -4 and  54 is -4.
//     Single : The lesser of   5 and  55 is 5.
//     Double : The lesser of   6 and  56 is 6.
//     Decimal: The lesser of   7 and  57 is 7.
//    
//     The following types are not CLS-compliant:
//    
//     SByte  : The lesser of 101 and 111 is 101.
//     UInt16 : The lesser of 102 and 112 is 102.
//     UInt32 : The lesser of 103 and 113 is 103.
//     UInt64 : The lesser of 104 and 114 is 104.
' This example demonstrates Math.Min()
Class Sample
   Public Shared Sub Main()
      Dim str As String = "{0}: The lesser of {1,3} and {2,3} is {3}."
      Dim nl As String = Environment.NewLine
      
      Dim xByte1 As Byte = 1
      Dim xByte2 As Byte = 51
      Dim xShort1 As Short = - 2
      Dim xShort2 As Short = 52
      Dim xInt1 As Integer = - 3
      Dim xInt2 As Integer = 53
      Dim xLong1 As Long = - 4
      Dim xLong2 As Long = 54
      Dim xSingle1 As Single = 5F
      Dim xSingle2 As Single = 55F
      Dim xDouble1 As Double = 6.0
      Dim xDouble2 As Double = 56.0
      Dim xDecimal1 As [Decimal] = 7D
      Dim xDecimal2 As [Decimal] = 57D
      
      ' The following types are not CLS-compliant.
      Dim xSbyte1 As SByte = 101
      Dim xSbyte2 As SByte = 111
      Dim xUshort1 As UShort = 102
      Dim xUshort2 As UShort = 112
      Dim xUint1 As UInteger = 103
      Dim xUint2 As UInteger = 113
      Dim xUlong1 As ULong = 104
      Dim xUlong2 As ULong = 114
      
      Console.WriteLine("{0}Display the lesser of two values:{0}", nl)
      Console.WriteLine(str, "Byte   ", xByte1, xByte2, Math.Min(xByte1, xByte2))
      Console.WriteLine(str, "Int16  ", xShort1, xShort2, Math.Min(xShort1, xShort2))
      Console.WriteLine(str, "Int32  ", xInt1, xInt2, Math.Min(xInt1, xInt2))
      Console.WriteLine(str, "Int64  ", xLong1, xLong2, Math.Min(xLong1, xLong2))
      Console.WriteLine(str, "Single ", xSingle1, xSingle2, Math.Min(xSingle1, xSingle2))
      Console.WriteLine(str, "Double ", xDouble1, xDouble2, Math.Min(xDouble1, xDouble2))
      Console.WriteLine(str, "Decimal", xDecimal1, xDecimal2, Math.Min(xDecimal1, xDecimal2))
      '
      Console.WriteLine("{0}The following types are not CLS-compliant:{0}", nl)
      Console.WriteLine(str, "SByte  ", xSbyte1, xSbyte2, Math.Min(xSbyte1, xSbyte2))
      Console.WriteLine(str, "UInt16 ", xUshort1, xUshort2, Math.Min(xUshort1, xUshort2))
      Console.WriteLine(str, "UInt32 ", xUint1, xUInt2, Math.Min(xUInt1, xUInt2))
      Console.WriteLine(str, "UInt64 ", xUlong1, xUlong2, Math.Min(xUlong1, xUlong2))
   End Sub
End Class
'
' This example produces the following results:
'
' Display the lesser of two values:
'
' Byte   : The lesser of   1 and  51 is 1.
' Int16  : The lesser of  -2 and  52 is -2.
' Int32  : The lesser of  -3 and  53 is -3.
' Int64  : The lesser of  -4 and  54 is -4.
' Single : The lesser of   5 and  55 is 5.
' Double : The lesser of   6 and  56 is 6.
' Decimal: The lesser of   7 and  57 is 7.
'
' The following types are not CLS-compliant:
' 
' SByte  : The lesser of 101 and 111 is 101.
' UInt16 : The lesser of 102 and 112 is 102.
' UInt32 : The lesser of 103 and 113 is 103.
' UInt64 : The lesser of 104 and 114 is 104.
Min(UInt32, UInt32)
- Source:
- Math.cs
- Source:
- Math.cs
- Source:
- Math.cs
- Source:
- Math.cs
Important
This API is not CLS-compliant.
Returns the smaller of two 32-bit unsigned integers.
public:
 static System::UInt32 Min(System::UInt32 val1, System::UInt32 val2);[System.CLSCompliant(false)]
public static uint Min(uint val1, uint val2);[<System.CLSCompliant(false)>]
static member Min : uint32 * uint32 -> uint32Public Shared Function Min (val1 As UInteger, val2 As UInteger) As UIntegerParameters
- val1
- UInt32
The first of two 32-bit unsigned integers to compare.
- val2
- UInt32
The second of two 32-bit unsigned integers to compare.
Returns
Parameter val1 or val2, whichever is smaller.
- Attributes
Applies to
Min(UInt16, UInt16)
- Source:
- Math.cs
- Source:
- Math.cs
- Source:
- Math.cs
- Source:
- Math.cs
Important
This API is not CLS-compliant.
Returns the smaller of two 16-bit unsigned integers.
public:
 static System::UInt16 Min(System::UInt16 val1, System::UInt16 val2);[System.CLSCompliant(false)]
public static ushort Min(ushort val1, ushort val2);[<System.CLSCompliant(false)>]
static member Min : uint16 * uint16 -> uint16Public Shared Function Min (val1 As UShort, val2 As UShort) As UShortParameters
- val1
- UInt16
The first of two 16-bit unsigned integers to compare.
- val2
- UInt16
The second of two 16-bit unsigned integers to compare.
Returns
Parameter val1 or val2, whichever is smaller.
- Attributes
Applies to
Min(Single, Single)
- Source:
- Math.cs
- Source:
- Math.cs
- Source:
- Math.cs
- Source:
- Math.cs
Returns the smaller of two single-precision floating-point numbers.
public:
 static float Min(float val1, float val2);public static float Min(float val1, float val2);static member Min : single * single -> singlePublic Shared Function Min (val1 As Single, val2 As Single) As SingleParameters
- val1
- Single
The first of two single-precision floating-point numbers to compare.
- val2
- Single
The second of two single-precision floating-point numbers to compare.
Returns
Parameter val1 or val2, whichever is smaller. If val1, val2, or both val1 and val2 are equal to NaN, NaN is returned.
Applies to
Min(SByte, SByte)
- Source:
- Math.cs
- Source:
- Math.cs
- Source:
- Math.cs
- Source:
- Math.cs
Important
This API is not CLS-compliant.
Returns the smaller of two 8-bit signed integers.
public:
 static System::SByte Min(System::SByte val1, System::SByte val2);[System.CLSCompliant(false)]
public static sbyte Min(sbyte val1, sbyte val2);[<System.CLSCompliant(false)>]
static member Min : sbyte * sbyte -> sbytePublic Shared Function Min (val1 As SByte, val2 As SByte) As SByteParameters
- val1
- SByte
The first of two 8-bit signed integers to compare.
- val2
- SByte
The second of two 8-bit signed integers to compare.
Returns
Parameter val1 or val2, whichever is smaller.
- Attributes
Applies to
Min(IntPtr, IntPtr)
- Source:
- Math.cs
- Source:
- Math.cs
- Source:
- Math.cs
- Source:
- Math.cs
Returns the smaller of two native signed integers.
public:
 static IntPtr Min(IntPtr val1, IntPtr val2);public static IntPtr Min(IntPtr val1, IntPtr val2);public static nint Min(nint val1, nint val2);static member Min : nativeint * nativeint -> nativeintPublic Shared Function Min (val1 As IntPtr, val2 As IntPtr) As IntPtrParameters
- val1
- 
				
				IntPtr
nint nativeint 
The first of two native signed integers to compare.
- val2
- 
				
				IntPtr
nint nativeint 
The second of two native signed integers to compare.
Returns
nativeint
Parameter val1 or val2, whichever is smaller.
Applies to
Min(Double, Double)
- Source:
- Math.cs
- Source:
- Math.cs
- Source:
- Math.cs
- Source:
- Math.cs
Returns the smaller of two double-precision floating-point numbers.
public:
 static double Min(double val1, double val2);public static double Min(double val1, double val2);static member Min : double * double -> doublePublic Shared Function Min (val1 As Double, val2 As Double) As DoubleParameters
- val1
- Double
The first of two double-precision floating-point numbers to compare.
- val2
- Double
The second of two double-precision floating-point numbers to compare.
Returns
Parameter val1 or val2, whichever is smaller. If val1, val2, or both val1 and val2 are equal to NaN, NaN is returned.
Applies to
Min(Int32, Int32)
- Source:
- Math.cs
- Source:
- Math.cs
- Source:
- Math.cs
- Source:
- Math.cs
Returns the smaller of two 32-bit signed integers.
public:
 static int Min(int val1, int val2);public static int Min(int val1, int val2);static member Min : int * int -> intPublic Shared Function Min (val1 As Integer, val2 As Integer) As IntegerParameters
- val1
- Int32
The first of two 32-bit signed integers to compare.
- val2
- Int32
The second of two 32-bit signed integers to compare.
Returns
Parameter val1 or val2, whichever is smaller.
Applies to
Min(Int16, Int16)
- Source:
- Math.cs
- Source:
- Math.cs
- Source:
- Math.cs
- Source:
- Math.cs
Returns the smaller of two 16-bit signed integers.
public:
 static short Min(short val1, short val2);public static short Min(short val1, short val2);static member Min : int16 * int16 -> int16Public Shared Function Min (val1 As Short, val2 As Short) As ShortParameters
- val1
- Int16
The first of two 16-bit signed integers to compare.
- val2
- Int16
The second of two 16-bit signed integers to compare.
Returns
Parameter val1 or val2, whichever is smaller.
Applies to
Min(Decimal, Decimal)
- Source:
- Math.cs
- Source:
- Math.cs
- Source:
- Math.cs
- Source:
- Math.cs
Returns the smaller of two decimal numbers.
public:
 static System::Decimal Min(System::Decimal val1, System::Decimal val2);public static decimal Min(decimal val1, decimal val2);static member Min : decimal * decimal -> decimalPublic Shared Function Min (val1 As Decimal, val2 As Decimal) As DecimalParameters
- val1
- Decimal
The first of two decimal numbers to compare.
- val2
- Decimal
The second of two decimal numbers to compare.
Returns
Parameter val1 or val2, whichever is smaller.
Applies to
Min(Byte, Byte)
- Source:
- Math.cs
- Source:
- Math.cs
- Source:
- Math.cs
- Source:
- Math.cs
Returns the smaller of two 8-bit unsigned integers.
public:
 static System::Byte Min(System::Byte val1, System::Byte val2);public static byte Min(byte val1, byte val2);static member Min : byte * byte -> bytePublic Shared Function Min (val1 As Byte, val2 As Byte) As ByteParameters
- val1
- Byte
The first of two 8-bit unsigned integers to compare.
- val2
- Byte
The second of two 8-bit unsigned integers to compare.
Returns
Parameter val1 or val2, whichever is smaller.
Applies to
Min(UInt64, UInt64)
- Source:
- Math.cs
- Source:
- Math.cs
- Source:
- Math.cs
- Source:
- Math.cs
Important
This API is not CLS-compliant.
Returns the smaller of two 64-bit unsigned integers.
public:
 static System::UInt64 Min(System::UInt64 val1, System::UInt64 val2);[System.CLSCompliant(false)]
public static ulong Min(ulong val1, ulong val2);[<System.CLSCompliant(false)>]
static member Min : uint64 * uint64 -> uint64Public Shared Function Min (val1 As ULong, val2 As ULong) As ULongParameters
- val1
- UInt64
The first of two 64-bit unsigned integers to compare.
- val2
- UInt64
The second of two 64-bit unsigned integers to compare.
Returns
Parameter val1 or val2, whichever is smaller.
- Attributes
Applies to
Min(Int64, Int64)
- Source:
- Math.cs
- Source:
- Math.cs
- Source:
- Math.cs
- Source:
- Math.cs
Returns the smaller of two 64-bit signed integers.
public:
 static long Min(long val1, long val2);public static long Min(long val1, long val2);static member Min : int64 * int64 -> int64Public Shared Function Min (val1 As Long, val2 As Long) As LongParameters
- val1
- Int64
The first of two 64-bit signed integers to compare.
- val2
- Int64
The second of two 64-bit signed integers to compare.
Returns
Parameter val1 or val2, whichever is smaller.
Applies to
Min(UIntPtr, UIntPtr)
- Source:
- Math.cs
- Source:
- Math.cs
- Source:
- Math.cs
- Source:
- Math.cs
Important
This API is not CLS-compliant.
Returns the smaller of two native unsigned integers.
public:
 static UIntPtr Min(UIntPtr val1, UIntPtr val2);[System.CLSCompliant(false)]
public static UIntPtr Min(UIntPtr val1, UIntPtr val2);[System.CLSCompliant(false)]
public static nuint Min(nuint val1, nuint val2);[<System.CLSCompliant(false)>]
static member Min : unativeint * unativeint -> unativeintPublic Shared Function Min (val1 As UIntPtr, val2 As UIntPtr) As UIntPtrParameters
- val1
- 
				
				UIntPtr
nuint unativeint 
The first of two native unsigned integers to compare.
- val2
- 
				
				UIntPtr
nuint unativeint 
The second of two native unsigned integers to compare.
Returns
unativeint
Parameter val1 or val2, whichever is smaller.
- Attributes