Decimal.ToUInt16(Decimal) メソッド

定義

重要

この API は CLS 準拠ではありません。

CLS 準拠の代替
System.Decimal.ToInt32(Decimal)

指定した Decimal の値を等価の 16 ビット符号なし整数に変換します。

public:
 static System::UInt16 ToUInt16(System::Decimal value);
[System.CLSCompliant(false)]
public static ushort ToUInt16(decimal value);
[<System.CLSCompliant(false)>]
static member ToUInt16 : decimal -> uint16
Public Shared Function ToUInt16 (value As Decimal) As UShort

パラメーター

value
Decimal

変換する 10 進数。

返品

valueの値に相当する 16 ビット符号なし整数。

属性

例外

valueUInt16.MaxValue より大きいか 、UInt16.MinValue 未満です。

次の例では、 ToUInt16 メソッドを使用して、10 進数を UInt16 値に変換します。

using System;

class Example
{
   public static void Main( )
   {
      decimal[] values = { 123m, new Decimal(123000, 0, 0, false, 3),
                           123.999m, 65535.999m, 65536m,
                           32767.999m, 32768m, -0.999m,
                           -1m,  -32768.999m, -32769m };

      foreach (var value in values) {
         try {
            ushort number = Decimal.ToUInt16(value);
            Console.WriteLine("{0} --> {1}", value, number);
         }
         catch (OverflowException e)
         {
             Console.WriteLine("{0}: {1}", e.GetType().Name, value);
         }
      }
   }
}
// The example displays the following output:
//     123 --> 123
//     123.000 --> 123
//     123.999 --> 123
//     65535.999 --> 65535
//     OverflowException: 65536
//     32767.999 --> 32767
//     32768 --> 32768
//     -0.999 --> 0
//     OverflowException: -1
//     OverflowException: -32768.999
//     OverflowException: -32769
open System

let values = 
    [ 123m; Decimal(123000, 0, 0, false, 3uy)
      123.999m; 65535.999m; 65536m;
      32767.999m; 32768m; -0.999m;
      -1m; -32768.999m; -32769m ]

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

// The example displays the following output:
//     123 --> 123
//     123.000 --> 123
//     123.999 --> 123
//     65535.999 --> 65535
//     OverflowException: 65536
//     32767.999 --> 32767
//     32768 --> 32768
//     -0.999 --> 0
//     OverflowException: -1
//     OverflowException: -32768.999
//     OverflowException: -32769
Module Example
   Public Sub Main()
      Dim values() As Decimal = { 123d, New Decimal(123000, 0, 0, false, 3), 
                                  123.999d, 65535.999d, 65536d,
                                  32767.999d, 32768d, -0.999d, 
                                  -1d,  -32768.999d, -32769d }

      For Each value In values
         Try
            Dim number As UShort = Decimal.ToUInt16(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:
'     123 --> 123
'     123.000 --> 123
'     123.999 --> 123
'     65535.999 --> 65535
'     OverflowException: 65536
'     32767.999 --> 32767
'     32768 --> 32768
'     -0.999 --> 0
'     OverflowException: -1
'     OverflowException: -32768.999
'     OverflowException: -32769

注釈

戻り値は、10 進値の整数部分です。小数部の数字は切り捨てられます。

Decimal代入演算子を使用して、Explicit値を 16 ビット符号なし整数に変換することもできます。 演算子は縮小変換を実行するため、C# ではキャスト演算子、Visual Basicでは変換関数を使用する必要があります。

適用対象

こちらもご覧ください