語言

Decimal.ToByte(Decimal) 方法

定義

將指定的 Decimal 值轉換為等效的 8 位元無符號整數。

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

參數

value
Decimal

用小數轉換。

傳回

一個 8 位元無符號整數,等價 value於 。

例外狀況

value 小於 Byte.MinValue 或大於 Byte.MaxValue。

範例

以下範例使用該 ToByte 方法將十進位數 Byte 轉換為數值。

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

備註

value參數會四捨五入到最接近零的整數值,然後返回該結果。

你也可以使用Decimal賦值運算子將值Explicit轉換成 8 位元無符號整數。 由於運算子執行狹窄轉換,你必須使用C#中的鑄造運算子,或Visual Basic中的轉換函數。

適用於

另請參閱