Decimal から Single への変換
Decimal を単精度浮動小数点数に変換します。
returnValue = Decimal.op_Explicit(value)
[C#]
public static explicit operator float(decimalvalue);
[C++]
public: static float op_Explicit();
[JScript]
returnValue = Single(value);
[Visual Basic] Visual Basic では、この型で定義されている型変換を使用することができます。ただし、独自に定義することはできません。Decimal から Single への変換の代わりに、ToSingle メソッドを使用できます。
[JScript] JScript では、この型で定義されている型変換を使用することができます。ただし、独自に定義することはできません。
引数 [Visual Basic, JScript]
- value
変換する Decimal 。
パラメータ [C#]
- value
変換する Decimal 。
戻り値
変換された Decimal を表す単精度浮動小数点数。
解説
単精度浮動小数点数の有効桁数が Decimal より少ないため、この演算によって丸め誤差が発生することがあります。
使用例
[C#, C++] 明示的な Decimal to Single 変換を使用して Decimal の数値を Single の値に変換するコード例を次に示します。
// Example of the explicit conversions from decimal to float and
// decimal to double.
using System;
class DecimalToSgl_DblDemo
{
static string formatter = "{0,30}{1,17}{2,23}";
// Convert the decimal argument; no exceptions are thrown.
public static void DecimalToSgl_Dbl( decimal argument )
{
object SingleValue;
object DoubleValue;
// Convert the argument to a single value.
SingleValue = (float)argument;
// Convert the argument to a double value.
DoubleValue = (double)argument;
Console.WriteLine( formatter, argument,
SingleValue, DoubleValue );
}
public static void Main( )
{
Console.WriteLine(
"This example of the explicit conversions from decimal " +
"to float \nand decimal to double generates the " +
"following output. It displays \nseveral converted " +
"decimal values.\n" );
Console.WriteLine( formatter, "decimal argument",
"float", "double" );
Console.WriteLine( formatter, "----------------",
"-----", "------" );
// Convert decimal values and display the results.
DecimalToSgl_Dbl( 0.0000000000000000000000000001M );
DecimalToSgl_Dbl( 0.0000000000123456789123456789M );
DecimalToSgl_Dbl( 123M );
DecimalToSgl_Dbl( new decimal( 123000000, 0, 0, false, 6 ) );
DecimalToSgl_Dbl( 123456789.123456789M );
DecimalToSgl_Dbl( 123456789123456789123456789M );
DecimalToSgl_Dbl( decimal.MinValue );
DecimalToSgl_Dbl( decimal.MaxValue );
}
}
/*
This example of the explicit conversions from decimal to float
and decimal to double generates the following output. It displays
several converted decimal values.
decimal argument float double
---------------- ----- ------
0.0000000000000000000000000001 1E-28 1E-28
0.0000000000123456789123456789 1.234568E-11 1.23456789123457E-11
123 123 123
123.000000 123 123
123456789.123456789 1.234568E+08 123456789.123457
123456789123456789123456789 1.234568E+26 1.23456789123457E+26
-79228162514264337593543950335 -7.922816E+28 -7.92281625142643E+28
79228162514264337593543950335 7.922816E+28 7.92281625142643E+28
*/
[C++]
// Example of the explicit conversions from Decimal to float and
// Decimal to double.
#using <mscorlib.dll>
using namespace System;
static __wchar_t* formatter = L"{0,30}{1,17}{2,23}";
// Convert the Decimal argument; no exceptions are thrown.
void DecimalToSgl_Dbl( Decimal argument )
{
Object* SingleValue;
Object* DoubleValue;
// Convert the argument to a float value.
SingleValue = __box( (float)argument );
// Convert the argument to a double value.
DoubleValue = __box( (double)argument );
Console::WriteLine( formatter, __box( argument ),
SingleValue, DoubleValue );
}
void main( )
{
Console::WriteLine(
S"This example of the explicit conversions from Decimal to "
S"float \nand Decimal to double generates the "
S"following output. It \ndisplays several converted Decimal "
S"values.\n" );
Console::WriteLine( formatter, S"Decimal argument",
S"float", S"double" );
Console::WriteLine( formatter, S"----------------",
S"-----", S"------" );
// Convert Decimal values and display the results.
DecimalToSgl_Dbl( Decimal::Parse( "0.0000000000000000000000000001" ) );
DecimalToSgl_Dbl( Decimal::Parse( "0.0000000000123456789123456789" ) );
DecimalToSgl_Dbl( Decimal::Parse( "123" ) );
DecimalToSgl_Dbl( Decimal( 123000000, 0, 0, false, 6 ) );
DecimalToSgl_Dbl( Decimal::Parse( "123456789.123456789" ) );
DecimalToSgl_Dbl( Decimal::Parse( "123456789123456789123456789" ) );
DecimalToSgl_Dbl( Decimal::MinValue );
DecimalToSgl_Dbl( Decimal::MaxValue );
}
/*
This example of the explicit conversions from Decimal to float
and Decimal to double generates the following output. It
displays several converted Decimal values.
Decimal argument float double
---------------- ----- ------
0.0000000000000000000000000001 1E-28 1E-28
0.0000000000123456789123456789 1.234568E-11 1.23456789123457E-11
123 123 123
123.000000 123 123
123456789.123456789 1.234568E+08 123456789.123457
123456789123456789123456789 1.234568E+26 1.23456789123457E+26
-79228162514264337593543950335 -7.922816E+28 -7.92281625142643E+28
79228162514264337593543950335 7.922816E+28 7.92281625142643E+28
*/
[Visual Basic, JScript] Visual Basic および JScript のサンプルはありません。C# および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard