情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Decimal Explicit 変換 (Single to Decimal)

2013/12/12

単精度浮動小数点数を Decimal に変換します。

Namespace:  System
アセンブリ:  mscorlib (mscorlib.dll 内)

public static explicit operator decimal (
	float value
)

パラメーター

value
型: System.Single
単精度浮動小数点数。

戻り値

型: System.Decimal
変換された単精度浮動小数点数を表す Decimal

例外条件
OverflowException

valueMinValue より小さい値か、MaxValue より大きい値です。

または

valueSingle.NaNSingle.PositiveInfinity、または Single.NegativeInfinity です。

Single to Decimal 変換を使用して、Single 値を Decimal 数値に変換するコード例を次に示します。Visual Basic では、この変換を行うのに op_Explicit 演算子が必要です。


// Example of the explicit conversion from float to decimal.
using System;

class Example
{
   const string formatter = "{0,16:E7}{1,33}";

   // Get the exception type name; remove the namespace prefix.
   public static string GetExceptionType(Exception ex)
   {
      string exceptionType = ex.GetType().ToString();
      return exceptionType.Substring(
          exceptionType.LastIndexOf('.') + 1);
   }

   // Convert the float argument; catch exceptions that are thrown.
   public static void DecimalFromSingle(System.Windows.Controls.TextBlock outputBlock, float argument)
   {
      object decValue;

      // Convert the float argument to a decimal value.
      try
      {
         decValue = (decimal)argument;
      }
      catch (Exception ex)
      {
         decValue = GetExceptionType(ex);
      }

      outputBlock.Text += String.Format(formatter, argument, decValue) + "\n";
   }

   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      outputBlock.Text += 
          "This example of the explicit conversion from float " +
          "to decimal \ngenerates the following output.\n" + "\n";
      outputBlock.Text += String.Format(formatter, "float argument",
          "decimal value") + "\n";
      outputBlock.Text += String.Format(formatter, "--------------",
          "-------------") + "\n";

      // Convert float values and display the results.
      DecimalFromSingle(outputBlock, 1.2345E-30F);
      DecimalFromSingle(outputBlock, 1.2345E-26F);
      DecimalFromSingle(outputBlock, 1.23456E-22F);
      DecimalFromSingle(outputBlock, 1.23456E-12F);
      DecimalFromSingle(outputBlock, 1.234567F);
      DecimalFromSingle(outputBlock, 1.234567E+12F);
      DecimalFromSingle(outputBlock, 1.2345678E+28F);
      DecimalFromSingle(outputBlock, 1.2345678E+30F);
   }
}

/*
This example of the explicit conversion from float to decimal
generates the following output.

  float argument                    decimal value
  --------------                    -------------
  1.2345000E-030                                0
  1.2345000E-026   0.0000000000000000000000000123
  1.2345600E-022    0.000000000000000000000123456
  1.2345600E-012              0.00000000000123456
  1.2345671E+000                         1.234567
  1.2345670E+012                    1234567000000
  1.2345678E+028    12345680000000000000000000000
  1.2345678E+030                OverflowException
*/


Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示: