Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

Decimal.ToByte(Decimal) Method

Definition

Namespace:
System
Assemblies:
mscorlib.dll, System.Runtime.dll
Assemblies:
netstandard.dll, System.Runtime.dll
Assembly:
System.Runtime.dll
Assembly:
mscorlib.dll
Assembly:
netstandard.dll
Source:
Decimal.cs
Source:
Decimal.cs
Source:
Decimal.cs
Source:
Decimal.cs
Source:
Decimal.cs

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.

Converts the value of the specified Decimal to the equivalent 8-bit unsigned integer.

public:
 static System::Byte ToByte(System::Decimal value);
public static byte ToByte(decimal value);
static member ToByte : decimal -> byte
Public Shared Function ToByte (value As Decimal) As Byte

Parameters

value
Decimal

The decimal number to convert.

Returns

An 8-bit unsigned integer equivalent to value.

Exceptions

value is less than Byte.MinValue or greater than Byte.MaxValue.

Examples

The following example uses the ToByte method to convert decimal numbers to Byte values.

using System;

class Example
{
 public static void Main( )
 {
 decimal[] values = { 123m, new Decimal(78000, 0, 0, false, 3),
 78.999m, 255.999m, 256m,
 127.999m, 128m, -0.999m,
 -1m, -128.999m, -129m };

 foreach (var value in values) {
 try {
 byte number = Decimal.ToByte(value);
 Console.WriteLine("{0} --> {1}", value, number);
 }
 catch (OverflowException e)
 {
 Console.WriteLine("{0}: {1}", e.GetType().Name, value);
 }
 }
 }
}
// The example displays the following output:
// 78 --> 78
// 78.000 --> 78
// 78.999 --> 78
// 255.999 --> 255
// OverflowException: 256
// 127.999 --> 127
// 128 --> 128
// -0.999 --> 0
// OverflowException: -1
// OverflowException: -128.999
// OverflowException: -129
open System

let values = 
 [ 123m; Decimal(78000, 0, 0, false, 3uy)
 78.999m; 255.999m; 256m
 127.999m; 128m; -0.999m
 -1m; -128.999m; -129m ]

for value in values do
 try
 let number = Decimal.ToByte value
 printfn $"{value} --> {number}"
 with :? OverflowException as e ->
 printfn $"{e.GetType().Name}: {value}"

// The example displays the following output:
// 78 --> 78
// 78.000 --> 78
// 78.999 --> 78
// 255.999 --> 255
// OverflowException: 256
// 127.999 --> 127
// 128 --> 128
// -0.999 --> 0
// OverflowException: -1
// OverflowException: -128.999
// OverflowException: -129
Module Example
 Public Sub Main()
 Dim values() As Decimal = { 78d, New Decimal(78000, 0, 0, false, 3), 
 78.999d, 255.999d, 256d,
 127.999d, 128d, -0.999d, 
 -1d, -128.999d, -129d }

 For Each value In values
 Try
 Dim number As Byte = Decimal.ToByte(value)
 Console.WriteLine("{0} --> {1}", value, number) 
 Catch e As OverflowException
 Console.WriteLine("{0}: {1}", e.GetType().Name, value)
 End Try 
 Next
 End Sub
End Module
' The example displays the following output:
' 78 --> 78
' 78.000 --> 78
' 78.999 --> 78
' 255.999 --> 255
' OverflowException: 256
' 127.999 --> 127
' 128 --> 128
' -0.999 --> 0
' OverflowException: -1
' OverflowException: -128.999
' OverflowException: -129

Remarks

Parameter value is rounded to the nearest integer value toward zero, and that result is returned.

You can also convert a Decimal value to an 8-bit unsigned integer by using the Explicit assignment operator. Because the operator performs a narrowing conversion, you must use a casting operator in C# or a conversion function in Visual Basic.

Applies to

See also


Feedback

Was this page helpful?