Convert.ToDecimal メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定した値を 10 進数に変換します。
オーバーロード
ToDecimal(Single) |
指定した単精度浮動小数点数値を等価の 10 進数に変換します。 |
ToDecimal(String) |
指定した数値の文字列形式を等価の 10 進数に変換します。 |
ToDecimal(UInt16) |
指定した 16 ビット符号なし整数の値を等価の 10 進数に変換します。 |
ToDecimal(String, IFormatProvider) |
指定したカルチャに固有の書式情報を使用して、指定した数値の文字列形式を等価の 10 進数に変換します。 |
ToDecimal(UInt64) |
指定した 64 ビット符号なし整数の値を等価の 10 進数に変換します。 |
ToDecimal(Object, IFormatProvider) |
指定したカルチャに固有の書式情報を使用して、指定したオブジェクトの値を等価の 10 進数に変換します。 |
ToDecimal(SByte) |
指定した 8 ビット符号付き整数の値を等価の 10 進数に変換します。 |
ToDecimal(UInt32) |
指定した 32 ビット符号なし整数の値を等価の 10 進数に変換します。 |
ToDecimal(Object) |
指定したオブジェクトの値を等価の 10 進数に変換します。 |
ToDecimal(Int64) |
指定した 64 ビット符号付き整数の値を等価の 10 進数に変換します。 |
ToDecimal(Int32) |
指定した 32 ビット符号付き整数の値を等価の 10 進数に変換します。 |
ToDecimal(Int16) |
指定した 16 ビット符号付き整数の値を等価の 10 進数に変換します。 |
ToDecimal(Double) |
指定した倍精度浮動小数点数値を等価の 10 進数に変換します。 |
ToDecimal(Decimal) |
指定した 10 進数を返します。実際の変換は行われません。 |
ToDecimal(DateTime) |
このメソッドを呼び出すと、必ず InvalidCastException がスローされます。 |
ToDecimal(Char) |
このメソッドを呼び出すと、必ず InvalidCastException がスローされます。 |
ToDecimal(Byte) |
指定した 8 ビット符号なし整数の値を等価の 10 進数に変換します。 |
ToDecimal(Boolean) |
指定したブール値を等価の 10 進数に変換します。 |
ToDecimal(Single)
- ソース:
- Convert.cs
- ソース:
- Convert.cs
- ソース:
- Convert.cs
指定した単精度浮動小数点数値を等価の 10 進数に変換します。
public:
static System::Decimal ToDecimal(float value);
public static decimal ToDecimal (float value);
static member ToDecimal : single -> decimal
Public Shared Function ToDecimal (value As Single) As Decimal
パラメーター
- value
- Single
変換する単精度浮動小数点数。
戻り値
value
と等しい 10 進数。
例外
value
が Decimal.MaxValue より大きいか、 Decimal.MinValue より小さい。
例
次の例では、値の配列 Single 内の各要素を値に Decimal 変換しようとします。
float[] numbers = { Single.MinValue, -3e10f, -1093.54f, 0f, 1e-03f,
1034.23f, Single.MaxValue };
decimal result;
foreach (float number in numbers)
{
try {
result = Convert.ToDecimal(number);
Console.WriteLine("Converted the Single value {0} to {1}.", number, result);
}
catch (OverflowException) {
Console.WriteLine("{0} is out of range of the Decimal type.", number);
}
}
// The example displays the following output:
// -3.402823E+38 is out of range of the Decimal type.
// Converted the Single value -3E+10 to -30000000000.
// Converted the Single value -1093.54 to -1093.54.
// Converted the Single value 0 to 0.
// Converted the Single value 0.001 to 0.001.
// Converted the Single value 1034.23 to 1034.23.
// 3.402823E+38 is out of range of the Decimal type.
let numbers =
[| Single.MinValue; -3e10f; -1093.54f; 0f
1e-03f; 1034.23f; Single.MaxValue |]
for number in numbers do
try
let result = Convert.ToDecimal number
printfn $"Converted the Single value {number} to {result}."
with :? OverflowException ->
printfn $"{number} is out of range of the Decimal type."
// The example displays the following output:
// -3.402823E+38 is out of range of the Decimal type.
// Converted the Single value -3E+10 to -30000000000.
// Converted the Single value -1093.54 to -1093.54.
// Converted the Single value 0 to 0.
// Converted the Single value 0.001 to 0.001.
// Converted the Single value 1034.23 to 1034.23.
// 3.402823E+38 is out of range of the Decimal type.
Dim numbers() As Single = { Single.MinValue, -3e10, -1093.54, 0, 1e-03, _
1034.23, Single.MaxValue }
Dim result As Decimal
For Each number As Single In numbers
Try
result = Convert.ToDecimal(number)
Console.WriteLine("Converted the Single value {0} to {1}.", number, result)
Catch e As OverflowException
Console.WriteLine("{0} is out of range of the Decimal type.", number)
End Try
Next
' The example displays the following output:
' -3.402823E+38 is out of range of the Decimal type.
' Converted the Single value -3E+10 to -30000000000.
' Converted the Single value -1093.54 to -1093.54.
' Converted the Single value 0 to 0.
' Converted the Single value 0.001 to 0.001.
' Converted the Single value 1034.23 to 1034.23.
' 3.402823E+38 is out of range of the Decimal type.
注釈
Decimalこのメソッドによって返される値には、最大 7 桁の有効桁数が含まれています。 パラメーターに有効桁数が value
7 桁を超える場合は、最も近い四捨五入を使用して丸められます。 次の例は、メソッドが ToDecimal(Single) 最も近い値に丸め処理を使用して、有効桁数 7 桁の値を Decimal 返す方法を示しています。
Console.WriteLine(Convert.ToDecimal(1234567500.12F)); // Displays 1234568000
Console.WriteLine(Convert.ToDecimal(1234568500.12F)); // Displays 1234568000
Console.WriteLine(Convert.ToDecimal(10.980365F)); // Displays 10.98036
Console.WriteLine(Convert.ToDecimal(10.980355F)); // Displays 10.98036
printfn $"{Convert.ToDecimal 1234567500.12F}" // Displays 1234568000
printfn $"{Convert.ToDecimal 1234568500.12F}" // Displays 1234568000
printfn $"{Convert.ToDecimal 10.980365F}" // Displays 10.98036
printfn $"{Convert.ToDecimal 10.980355F}" // Displays 10.98036
Console.WriteLine(Convert.ToDecimal(1234567500.12f)) ' Displays 1234568000
Console.WriteLine(Convert.ToDecimal(1234568500.12f)) ' Displays 1234568000
Console.WriteLine(Convert.ToDecimal(10.980365f)) ' Displays 10.98036
Console.WriteLine(Convert.ToDecimal(10.980355f)) ' Displays 10.98036
こちらもご覧ください
適用対象
ToDecimal(String)
- ソース:
- Convert.cs
- ソース:
- Convert.cs
- ソース:
- Convert.cs
指定した数値の文字列形式を等価の 10 進数に変換します。
public:
static System::Decimal ToDecimal(System::String ^ value);
public static decimal ToDecimal (string value);
public static decimal ToDecimal (string? value);
static member ToDecimal : string -> decimal
Public Shared Function ToDecimal (value As String) As Decimal
パラメーター
- value
- String
変換する数値を含んだ文字列。
戻り値
value
の数値と等価の 10 進数。value
が null
の場合は 0 (ゼロ)。
例外
value
は有効な形式の数値ではありません。
value
は、 Decimal.MinValue より小さいか、 Decimal.MaxValue より大きい数値を表します。
例
次の例は、ToDecimal
の使用方法を示しています。 は に変換 String を試み、変換中に Decimal発生する可能性のある例外をスローします。
public:
void ConvertStringDecimal( String^ stringVal )
{
Decimal decimalVal = 0;
try
{
decimalVal = System::Convert::ToDecimal( stringVal );
System::Console::WriteLine( "The String as a decimal is {0}.",
decimalVal );
}
catch ( System::OverflowException^ )
{
System::Console::WriteLine(
"The conversion from String to decimal overflowed." );
}
catch ( System::FormatException^ )
{
System::Console::WriteLine(
"The String is not formatted as a decimal." );
}
catch ( System::ArgumentNullException^ )
{
System::Console::WriteLine( "The String is 0." );
}
// Decimal to String conversion will not overflow.
stringVal = System::Convert::ToString( decimalVal );
System::Console::WriteLine(
"The decimal as a String is {0}.", stringVal );
}
public void ConvertStringDecimal(string stringVal) {
decimal decimalVal = 0;
try {
decimalVal = System.Convert.ToDecimal(stringVal);
System.Console.WriteLine(
"The string as a decimal is {0}.", decimalVal);
}
catch (System.OverflowException){
System.Console.WriteLine(
"The conversion from string to decimal overflowed.");
}
catch (System.FormatException) {
System.Console.WriteLine(
"The string is not formatted as a decimal.");
}
catch (System.ArgumentNullException) {
System.Console.WriteLine(
"The string is null.");
}
// Decimal to string conversion will not overflow.
stringVal = System.Convert.ToString(decimalVal);
System.Console.WriteLine(
"The decimal as a string is {0}.", stringVal);
}
let convertStringDecimal (stringVal: string) =
let decimalVal = 0m
try
let decimalVal = Convert.ToDecimal(stringVal)
printfn $"The string as a decimal is {decimalVal}."
with
| :? OverflowException ->
printfn "The conversion from string to decimal overflowed."
| :? FormatException ->
printfn "The string is not formatted as a decimal."
| :? ArgumentNullException ->
printfn "The string is null."
// Decimal to string conversion will not overflow.
let stringVal = Convert.ToString decimalVal
printfn $"The decimal as a string is {stringVal}."
Public Sub ConvertStringDecimal(ByVal stringVal As String)
Dim decimalVal As Decimal = 0
Try
decimalVal = System.Convert.ToDecimal(stringVal)
System.Console.WriteLine("The string as a decimal is {0}.", _
decimalVal)
Catch exception As System.OverflowException
System.Console.WriteLine( _
"Overflow in string-to-decimal conversion.")
Catch exception As System.FormatException
System.Console.WriteLine( _
"The string is not formatted as a decimal.")
Catch exception As System.ArgumentException
System.Console.WriteLine("The string is null.")
End Try
' Decimal to string conversion will not overflow.
stringVal = System.Convert.ToString(decimalVal)
System.Console.WriteLine("The decimal as a string is {0}.", _
stringVal)
End Sub
注釈
メソッドの ToDecimal(String) 使用は、 メソッドに渡すこと value
と Decimal.Parse(String) 同じです。
value
は、現在のカルチャの書式設定規則を使用して解釈されます。
変換が失敗した場合に例外を処理しない場合は、代わりに メソッドを Decimal.TryParse 呼び出すことができます。 変換が Boolean 成功したか失敗したかを示す値を返します。
適用対象
ToDecimal(UInt16)
- ソース:
- Convert.cs
- ソース:
- Convert.cs
- ソース:
- Convert.cs
重要
この API は CLS 準拠ではありません。
指定した 16 ビット符号なし整数の値を等価の 10 進数に変換します。
public:
static System::Decimal ToDecimal(System::UInt16 value);
[System.CLSCompliant(false)]
public static decimal ToDecimal (ushort value);
[<System.CLSCompliant(false)>]
static member ToDecimal : uint16 -> decimal
Public Shared Function ToDecimal (value As UShort) As Decimal
パラメーター
- value
- UInt16
変換する 16 ビット符号なし整数。
戻り値
value
と等価の 10 進数。
- 属性
例
次の例では、16 ビット符号なし整数の配列を値に Decimal 変換します。
ushort[] numbers = { UInt16.MinValue, 121, 12345, UInt16.MaxValue };
decimal result;
foreach (ushort number in numbers)
{
result = Convert.ToDecimal(number);
Console.WriteLine("Converted the UInt16 value {0} to {1}.",
number, result);
}
// The example displays the following output:
// Converted the UInt16 value 0 to 0.
// Converted the UInt16 value 121 to 121.
// Converted the UInt16 value 12345 to 12345.
// Converted the UInt16 value 65535 to 65535.
let numbers =
[| UInt16.MinValue; 121us; 12345us; UInt16.MaxValue |]
for number in numbers do
let result = Convert.ToDecimal number
printfn $"Converted the UInt16 value {number} to {result}."
// The example displays the following output:
// Converted the UInt16 value 0 to 0.
// Converted the UInt16 value 121 to 121.
// Converted the UInt16 value 12345 to 12345.
// Converted the UInt16 value 65535 to 65535.
Dim numbers() As UShort = { UInt16.MinValue, 121, 12345, UInt16.MaxValue }
Dim result As Decimal
For Each number As UShort In numbers
result = Convert.ToDecimal(number)
Console.WriteLine("Converted the UInt16 value {0} to {1}.", _
number, result)
Next
' The example displays the following output:
' Converted the UInt16 value 0 to 0.
' Converted the UInt16 value 121 to 121.
' Converted the UInt16 value 12345 to 12345.
' Converted the UInt16 value 65535 to 65535.
こちらもご覧ください
適用対象
ToDecimal(String, IFormatProvider)
- ソース:
- Convert.cs
- ソース:
- Convert.cs
- ソース:
- Convert.cs
指定したカルチャに固有の書式情報を使用して、指定した数値の文字列形式を等価の 10 進数に変換します。
public:
static System::Decimal ToDecimal(System::String ^ value, IFormatProvider ^ provider);
public static decimal ToDecimal (string value, IFormatProvider provider);
public static decimal ToDecimal (string? value, IFormatProvider? provider);
static member ToDecimal : string * IFormatProvider -> decimal
Public Shared Function ToDecimal (value As String, provider As IFormatProvider) As Decimal
パラメーター
- value
- String
変換する数値を含んだ文字列。
- provider
- IFormatProvider
カルチャ固有の書式情報を提供するオブジェクト。
戻り値
value
の数値と等価の 10 進数。value
が null
の場合は 0 (ゼロ)。
例外
value
は有効な形式の数値ではありません。
value
は、 Decimal.MinValue より小さいか、 Decimal.MaxValue より大きい数値を表します。
例
次の例では、2 つの異なるカルチャを表すオブジェクトを Decimal 使用 NumberFormatInfo して、文字列の配列を値に変換しようとしています。
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
string[] values = { "123456789", "12345.6789", "12 345,6789",
"123,456.789", "123 456,789", "123,456,789.0123",
"123 456 789,0123" };
CultureInfo[] cultures = { new CultureInfo("en-US"),
new CultureInfo("fr-FR") };
foreach (CultureInfo culture in cultures)
{
Console.WriteLine("String -> Decimal Conversion Using the {0} Culture",
culture.Name);
foreach (string value in values)
{
Console.Write("{0,20} -> ", value);
try {
Console.WriteLine(Convert.ToDecimal(value, culture));
}
catch (FormatException) {
Console.WriteLine("FormatException");
}
}
Console.WriteLine();
}
}
}
// The example displays the following output:
// String -> Decimal Conversion Using the en-US Culture
// 123456789 -> 123456789
// 12345.6789 -> 12345.6789
// 12 345,6789 -> FormatException
// 123,456.789 -> 123456.789
// 123 456,789 -> FormatException
// 123,456,789.0123 -> 123456789.0123
// 123 456 789,0123 -> FormatException
//
// String -> Decimal Conversion Using the fr-FR Culture
// 123456789 -> 123456789
// 12345.6789 -> FormatException
// 12 345,6789 -> 12345.6789
// 123,456.789 -> FormatException
// 123 456,789 -> 123456.789
// 123,456,789.0123 -> FormatException
// 123 456 789,0123 -> 123456789.0123
open System
open System.Globalization
let values =
[| "123456789"; "12345.6789"; "12 345,6789"; "123,456.789"
"123 456,789"; "123,456,789.0123"; "123 456 789,0123" |]
let cultures =
[ CultureInfo "en-US"; CultureInfo "fr-FR" ]
for culture in cultures do
printfn $"String -> Decimal Conversion Using the {culture.Name} Culture"
for value in values do
printf $"{value,20} -> "
try
printfn $"{Convert.ToDecimal(value, culture)}"
with :? FormatException ->
printfn "FormatException"
printfn ""
// The example displays the following output:
// String -> Decimal Conversion Using the en-US Culture
// 123456789 -> 123456789
// 12345.6789 -> 12345.6789
// 12 345,6789 -> FormatException
// 123,456.789 -> 123456.789
// 123 456,789 -> FormatException
// 123,456,789.0123 -> 123456789.0123
// 123 456 789,0123 -> FormatException
//
// String -> Decimal Conversion Using the fr-FR Culture
// 123456789 -> 123456789
// 12345.6789 -> FormatException
// 12 345,6789 -> 12345.6789
// 123,456.789 -> FormatException
// 123 456,789 -> 123456.789
// 123,456,789.0123 -> FormatException
// 123 456 789,0123 -> 123456789.0123
Imports System.Globalization
Module Example
Public Sub Main()
Dim values() As String = { "123456789", "12345.6789", "12 345,6789", _
"123,456.789", "123 456,789", "123,456,789.0123", _
"123 456 789,0123" }
Dim cultures() As CultureInfo = { New CultureInfo("en-US"), _
New CultureInfo("fr-FR") }
For Each culture As CultureInfo In cultures
Console.WriteLine("String -> Decimal Conversion Using the {0} Culture", _
culture.Name)
For Each value As String In values
Console.Write("{0,20} -> ", value)
Try
Console.WriteLine(Convert.ToDecimal(value, culture))
Catch e As FormatException
Console.WriteLine("FormatException")
End Try
Next
Console.WriteLine()
Next
End Sub
End Module
' The example displays the following output:
' String -> Decimal Conversion Using the en-US Culture
' 123456789 -> 123456789
' 12345.6789 -> 12345.6789
' 12 345,6789 -> FormatException
' 123,456.789 -> 123456.789
' 123 456,789 -> FormatException
' 123,456,789.0123 -> 123456789.0123
' 123 456 789,0123 -> FormatException
'
' String -> Decimal Conversion Using the fr-FR Culture
' 123456789 -> 123456789
' 12345.6789 -> FormatException
' 12 345,6789 -> 12345.6789
' 123,456.789 -> FormatException
' 123 456,789 -> 123456.789
' 123,456,789.0123 -> FormatException
' 123 456 789,0123 -> 123456789.0123
注釈
戻り値は、 で value
メソッドを呼び出したDecimal.Parse結果です。
provider
は、 IFormatProvider オブジェクトを取得するインスタンスです NumberFormatInfo 。 オブジェクトは NumberFormatInfo 、 の形式に関するカルチャ固有の value
情報を提供します。 が のnull
場合provider
は、NumberFormatInfo現在のカルチャの が使用されます。
変換が失敗した場合に例外を処理しない場合は、代わりに メソッドを Decimal.TryParse 呼び出すことができます。 変換が Boolean 成功したか失敗したかを示す値を返します。
適用対象
ToDecimal(UInt64)
- ソース:
- Convert.cs
- ソース:
- Convert.cs
- ソース:
- Convert.cs
重要
この API は CLS 準拠ではありません。
指定した 64 ビット符号なし整数の値を等価の 10 進数に変換します。
public:
static System::Decimal ToDecimal(System::UInt64 value);
[System.CLSCompliant(false)]
public static decimal ToDecimal (ulong value);
[<System.CLSCompliant(false)>]
static member ToDecimal : uint64 -> decimal
Public Shared Function ToDecimal (value As ULong) As Decimal
パラメーター
- value
- UInt64
変換する 64 ビット符号なし整数。
戻り値
value
と等しい 10 進数。
- 属性
例
次の例では、符号なし長整数の配列を値に Decimal 変換します。
ulong[] numbers = { UInt64.MinValue, 121, 12345, UInt64.MaxValue };
decimal result;
foreach (ulong number in numbers)
{
result = Convert.ToDecimal(number);
Console.WriteLine("Converted the UInt64 value {0} to {1}.",
number, result);
}
// The example displays the following output:
// Converted the UInt64 value 0 to 0.
// Converted the UInt64 value 121 to 121.
// Converted the UInt64 value 12345 to 12345.
// Converted the UInt64 value 18446744073709551615 to 18446744073709551615.
let numbers =
[| UInt64.MinValue; 121uL; 12345uL; UInt64.MaxValue |]
for number in numbers do
let result = Convert.ToDecimal number
printfn $"Converted the UInt64 value {number} to {result}."
// The example displays the following output:
// Converted the UInt64 value 0 to 0.
// Converted the UInt64 value 121 to 121.
// Converted the UInt64 value 12345 to 12345.
// Converted the UInt64 value 18446744073709551615 to 18446744073709551615.
Dim numbers() As ULong = { UInt64.MinValue, 121, 12345, UInt64.MaxValue }
Dim result As Decimal
For Each number As ULong In numbers
result = Convert.ToDecimal(number)
Console.WriteLine("Converted the UInt64 value {0} to {1}.", _
number, result)
Next
' The example displays the following output:
' Converted the UInt64 value 0 to 0.
' Converted the UInt64 value 121 to 121.
' Converted the UInt64 value 12345 to 12345.
' Converted the UInt64 value 18446744073709551615 to 18446744073709551615.
こちらもご覧ください
適用対象
ToDecimal(Object, IFormatProvider)
- ソース:
- Convert.cs
- ソース:
- Convert.cs
- ソース:
- Convert.cs
指定したカルチャに固有の書式情報を使用して、指定したオブジェクトの値を等価の 10 進数に変換します。
public:
static System::Decimal ToDecimal(System::Object ^ value, IFormatProvider ^ provider);
public static decimal ToDecimal (object value, IFormatProvider provider);
public static decimal ToDecimal (object? value, IFormatProvider? provider);
static member ToDecimal : obj * IFormatProvider -> decimal
Public Shared Function ToDecimal (value As Object, provider As IFormatProvider) As Decimal
パラメーター
- value
- Object
IConvertible インターフェイスを実装するオブジェクト。
- provider
- IFormatProvider
カルチャ固有の書式情報を提供するオブジェクト。
戻り値
value
と等価の 10 進数。value
が null
の場合は 0 (ゼロ)。
例外
value
は Decimal 型の適切な形式ではありません。
value
は、 Decimal.MinValue より小さいか、 Decimal.MaxValue より大きい数値を表します。
例
次の例では、 Temperature
インターフェイスを実装する IConvertible クラスを定義しています。
using System;
using System.Globalization;
public class Temperature : IConvertible
{
private decimal m_Temp;
public Temperature(decimal temperature)
{
this.m_Temp = temperature;
}
public decimal Celsius
{
get { return this.m_Temp; }
}
public decimal Kelvin
{
get { return this.m_Temp + 273.15m; }
}
public decimal Fahrenheit
{
get { return Math.Round((decimal) (this.m_Temp * 9 / 5 + 32), 2); }
}
public override string ToString()
{
return m_Temp.ToString("N2") + " °C";
}
// IConvertible implementations.
public TypeCode GetTypeCode()
{
return TypeCode.Object;
}
public bool ToBoolean(IFormatProvider provider)
{
if (m_Temp == 0)
return false;
else
return true;
}
public byte ToByte(IFormatProvider provider)
{
if (m_Temp < Byte.MinValue || m_Temp > Byte.MaxValue)
throw new OverflowException(String.Format("{0} is out of range of the Byte type.",
this.m_Temp));
else
return Decimal.ToByte(this.m_Temp);
}
public char ToChar(IFormatProvider provider)
{
throw new InvalidCastException("Temperature to Char conversion is not supported.");
}
public DateTime ToDateTime(IFormatProvider provider)
{
throw new InvalidCastException("Temperature to DateTime conversion is not supported.");
}
public decimal ToDecimal(IFormatProvider provider)
{
return this.m_Temp;
}
public double ToDouble(IFormatProvider provider)
{
return Decimal.ToDouble(this.m_Temp);
}
public short ToInt16(IFormatProvider provider)
{
if (this.m_Temp < Int16.MinValue || this.m_Temp > Int16.MaxValue)
throw new OverflowException(String.Format("{0} is out of range of the Int16 type.",
this.m_Temp));
else
return Decimal.ToInt16(this.m_Temp);
}
public int ToInt32(IFormatProvider provider)
{
if (this.m_Temp < Int32.MinValue || this.m_Temp > Int32.MaxValue)
throw new OverflowException(String.Format("{0} is out of range of the Int32 type.",
this.m_Temp));
else
return Decimal.ToInt32(this.m_Temp);
}
public long ToInt64(IFormatProvider provider)
{
if (this.m_Temp < Int64.MinValue || this.m_Temp > Int64.MaxValue)
throw new OverflowException(String.Format("{0} is out of range of the Int64 type.",
this.m_Temp));
else
return Decimal.ToInt64(this.m_Temp);
}
public sbyte ToSByte(IFormatProvider provider)
{
if (this.m_Temp < SByte.MinValue || this.m_Temp > SByte.MaxValue)
throw new OverflowException(String.Format("{0} is out of range of the SByte type.",
this.m_Temp));
else
return Decimal.ToSByte(this.m_Temp);
}
public float ToSingle(IFormatProvider provider)
{
return Decimal.ToSingle(this.m_Temp);
}
public string ToString(IFormatProvider provider)
{
return m_Temp.ToString("N2", provider) + " °C";
}
public object ToType(Type conversionType, IFormatProvider provider)
{
switch (Type.GetTypeCode(conversionType))
{
case TypeCode.Boolean:
return this.ToBoolean(null);
case TypeCode.Byte:
return this.ToByte(null);
case TypeCode.Char:
return this.ToChar(null);
case TypeCode.DateTime:
return this.ToDateTime(null);
case TypeCode.Decimal:
return this.ToDecimal(null);
case TypeCode.Double:
return this.ToDouble(null);
case TypeCode.Int16:
return this.ToInt16(null);
case TypeCode.Int32:
return this.ToInt32(null);
case TypeCode.Int64:
return this.ToInt64(null);
case TypeCode.Object:
if (typeof(Temperature).Equals(conversionType))
return this;
else
throw new InvalidCastException(String.Format("Conversion to a {0} is not supported.",
conversionType.Name));
case TypeCode.SByte:
return this.ToSByte(null);
case TypeCode.Single:
return this.ToSingle(null);
case TypeCode.String:
return this.ToString(provider);
case TypeCode.UInt16:
return this.ToUInt16(null);
case TypeCode.UInt32:
return this.ToUInt32(null);
case TypeCode.UInt64:
return this.ToUInt64(null);
default:
throw new InvalidCastException(String.Format("Conversion to {0} is not supported.", conversionType.Name));
}
}
public ushort ToUInt16(IFormatProvider provider)
{
if (this.m_Temp < UInt16.MinValue || this.m_Temp > UInt16.MaxValue)
throw new OverflowException(String.Format("{0} is out of range of the UInt16 type.",
this.m_Temp));
else
return Decimal.ToUInt16(this.m_Temp);
}
public uint ToUInt32(IFormatProvider provider)
{
if (this.m_Temp < UInt32.MinValue || this.m_Temp > UInt32.MaxValue)
throw new OverflowException(String.Format("{0} is out of range of the UInt32 type.",
this.m_Temp));
else
return Decimal.ToUInt32(this.m_Temp);
}
public ulong ToUInt64(IFormatProvider provider)
{
if (this.m_Temp < UInt64.MinValue || this.m_Temp > UInt64.MaxValue)
throw new OverflowException(String.Format("{0} is out of range of the UInt64 type.",
this.m_Temp));
else
return Decimal.ToUInt64(this.m_Temp);
}
}
open System
open System.Globalization
type Temperature(temperature) =
member _.Celsius = temperature
member _.Kelvin =
temperature + 273.15m
member _.Fahrenheit =
Math.Round(temperature * 9m / 5m + 32m, 2)
override _.ToString() =
$"{temperature:N2} °C"
// IConvertible implementations.
interface IConvertible with
member _.GetTypeCode() =
TypeCode.Object
member _.ToBoolean(provider: IFormatProvider) =
temperature <> 0M
member _.ToByte(provider: IFormatProvider) =
if uint8 temperature < Byte.MinValue || uint8 temperature > Byte.MaxValue then
raise (OverflowException $"{temperature} is out of range of the Byte type.")
else
Decimal.ToByte temperature
member _.ToChar(provider: IFormatProvider) =
raise (InvalidCastException "Temperature to Char conversion is not supported.")
member _.ToDateTime(provider: IFormatProvider) =
raise (InvalidCastException "Temperature to DateTime conversion is not supported.")
member _.ToDecimal(provider: IFormatProvider) =
temperature
member _.ToDouble(provider: IFormatProvider) =
Decimal.ToDouble temperature
member _.ToInt16(provider: IFormatProvider) =
if int16 temperature < Int16.MinValue || int16 temperature > Int16.MaxValue then
raise (OverflowException $"{temperature} is out of range of the Int16 type.")
else
Decimal.ToInt16 temperature
member _.ToInt32(provider: IFormatProvider) =
if int temperature < Int32.MinValue || int temperature > Int32.MaxValue then
raise (OverflowException $"{temperature} is out of range of the Int32 type.")
else
Decimal.ToInt32 temperature
member _.ToInt64(provider: IFormatProvider) =
if int64 temperature < Int64.MinValue || int64 temperature > Int64.MaxValue then
raise (OverflowException $"{temperature} is out of range of the Int64 type.")
else
Decimal.ToInt64 temperature
member _.ToSByte(provider: IFormatProvider) =
if int8 temperature < SByte.MinValue || int8 temperature > SByte.MaxValue then
raise (OverflowException $"{temperature} is out of range of the SByte type.")
else
Decimal.ToSByte temperature
member _.ToSingle(provider: IFormatProvider) =
Decimal.ToSingle temperature
member _.ToString(provider: IFormatProvider) =
temperature.ToString("N2", provider) + " °C"
member this.ToType(conversionType: Type, provider: IFormatProvider) =
let this = this :> IConvertible
match Type.GetTypeCode conversionType with
| TypeCode.Boolean ->
this.ToBoolean null
| TypeCode.Byte ->
this.ToByte null
| TypeCode.Char ->
this.ToChar null
| TypeCode.DateTime ->
this.ToDateTime null
| TypeCode.Decimal ->
this.ToDecimal null
| TypeCode.Double ->
this.ToDouble null
| TypeCode.Int16 ->
this.ToInt16 null
| TypeCode.Int32 ->
this.ToInt32 null
| TypeCode.Int64 ->
this.ToInt64 null
| TypeCode.Object ->
if typeof<Temperature>.Equals conversionType then
this
else
raise (InvalidCastException $"Conversion to a {conversionType.Name} is not supported.")
| TypeCode.SByte ->
this.ToSByte null
| TypeCode.Single ->
this.ToSingle null
| TypeCode.String ->
this.ToString provider
| TypeCode.UInt16 ->
this.ToUInt16 null
| TypeCode.UInt32 ->
this.ToUInt32 null
| TypeCode.UInt64 ->
this.ToUInt64 null
| _ ->
raise (InvalidCastException $"Conversion to {conversionType.Name} is not supported.")
member _.ToUInt16(provider: IFormatProvider) =
if uint16 temperature < UInt16.MinValue || uint16 temperature > UInt16.MaxValue then
raise (OverflowException $"{temperature} is out of range of the UInt16 type.")
else
Decimal.ToUInt16 temperature
member _.ToUInt32(provider: IFormatProvider) =
if uint temperature < UInt32.MinValue || uint temperature > UInt32.MaxValue then
raise (OverflowException $"{temperature} is out of range of the UInt32 type.")
else
Decimal.ToUInt32 temperature
member _.ToUInt64(provider: IFormatProvider) =
if uint64 temperature < UInt64.MinValue || uint64 temperature > UInt64.MaxValue then
raise (OverflowException $"{temperature} is out of range of the UInt64 type.")
else
Decimal.ToUInt64 temperature
Imports System.Globalization
Public Class Temperature : Implements IConvertible
Private m_Temp As Decimal
Public Sub New(temperature As Decimal)
Me.m_Temp = temperature
End Sub
Public ReadOnly Property Celsius() As Decimal
Get
Return Me.m_Temp
End Get
End Property
Public ReadOnly Property Kelvin() As Decimal
Get
Return Me.m_Temp + 273.15d
End Get
End Property
Public ReadOnly Property Fahrenheit() As Decimal
Get
Return Math.Round(CDec(Me.m_Temp * 9 / 5 + 32), 2)
End Get
End Property
Public Overrides Function ToString() As String
Return m_Temp.ToString("N2") & " °C"
End Function
' IConvertible implementations.
Public Function GetTypeCode() As TypeCode _
Implements IConvertible.GetTypeCode
Return TypeCode.Object
End Function
Public Function ToBoolean(provider As IFormatProvider) As Boolean _
Implements IConvertible.ToBoolean
If m_Temp = 0 Then
Return False
Else
Return True
End If
End Function
Public Function ToByte(provider As IFormatProvider) As Byte _
Implements IConvertible.ToByte
If m_Temp < Byte.MinValue Or m_Temp > Byte.MaxValue Then
Throw New OverflowException(String.Format("{0} is out of range of the Byte type.", _
Me.m_Temp))
Else
Return Decimal.ToByte(Me.m_Temp)
End If
End Function
Public Function ToChar(provider As IFormatProvider) As Char _
Implements IConvertible.ToChar
Throw New InvalidCastException("Temperature to Char conversion is not supported.")
End Function
Public Function ToDateTime(provider As IFormatProvider) As Date _
Implements IConvertible.ToDateTime
Throw New InvalidCastException("Temperature to DateTime conversion is not supported.")
End Function
Public Function ToDecimal(provider As IFormatProvider) As Decimal _
Implements IConvertible.ToDecimal
Return Me.m_Temp
End Function
Public Function ToDouble(provider As IFormatProvider) As Double _
Implements IConvertible.ToDouble
Return Decimal.ToDouble(Me.m_Temp)
End Function
Public Function ToInt16(provider As IFormatProvider) As Int16 _
Implements IConvertible.ToInt16
If Me.m_Temp < Int16.MinValue Or Me.m_Temp > Int16.MaxValue Then
Throw New OverflowException(String.Format("{0} is out of range of the Int16 type.", _
Me.m_Temp))
Else
Return Decimal.ToInt16(Me.m_Temp)
End If
End Function
Public Function ToInt32(provider As IFormatProvider) As Int32 _
Implements IConvertible.ToInt32
If Me.m_Temp < Int32.MinValue Or Me.m_Temp > Int32.MaxValue Then
Throw New OverflowException(String.Format("{0} is out of range of the Int32 type.", _
Me.m_Temp))
Else
Return Decimal.ToInt32(Me.m_Temp)
End If
End Function
Public Function ToInt64(provider As IFormatProvider) As Int64 _
Implements IConvertible.ToInt64
If Me.m_Temp < Int64.MinValue Or Me.m_Temp > Int64.MaxValue Then
Throw New OverflowException(String.Format("{0} is out of range of the Int64 type.", _
Me.m_Temp))
Else
Return Decimal.ToInt64(Me.m_Temp)
End If
End Function
Public Function ToSByte(provider As IFormatProvider) As SByte _
Implements IConvertible.ToSByte
If Me.m_Temp < SByte.MinValue Or Me.m_Temp > SByte.MaxValue Then
Throw New OverflowException(String.Format("{0} is out of range of the SByte type.", _
Me.m_Temp))
Else
Return Decimal.ToSByte(Me.m_Temp)
End If
End Function
Public Function ToSingle(provider As IFormatProvider) As Single _
Implements IConvertible.ToSingle
Return Decimal.ToSingle(Me.m_Temp)
End Function
Public Overloads Function ToString(provider As IFormatProvider) As String _
Implements IConvertible.ToString
Return m_Temp.ToString("N2", provider) & " °C"
End Function
Public Function ToType(conversionType As Type, provider As IFormatProvider) As Object _
Implements IConvertible.ToType
Select Case Type.GetTypeCode(conversionType)
Case TypeCode.Boolean
Return Me.ToBoolean(Nothing)
Case TypeCode.Byte
Return Me.ToByte(Nothing)
Case TypeCode.Char
Return Me.ToChar(Nothing)
Case TypeCode.DateTime
Return Me.ToDateTime(Nothing)
Case TypeCode.Decimal
Return Me.ToDecimal(Nothing)
Case TypeCode.Double
Return Me.ToDouble(Nothing)
Case TypeCode.Int16
Return Me.ToInt16(Nothing)
Case TypeCode.Int32
Return Me.ToInt32(Nothing)
Case TypeCode.Int64
Return Me.ToInt64(Nothing)
Case TypeCode.Object
If GetType(Temperature).Equals(conversionType) Then
Return Me
Else
Throw New InvalidCastException(String.Format("Conversion to a {0} is not supported.", _
conversionType.Name))
End If
Case TypeCode.SByte
Return Me.ToSByte(Nothing)
Case TypeCode.Single
Return Me.ToSingle(Nothing)
Case TypeCode.String
Return Me.ToString(provider)
Case TypeCode.UInt16
Return Me.ToUInt16(Nothing)
Case TypeCode.UInt32
Return Me.ToUInt32(Nothing)
Case TypeCode.UInt64
Return Me.ToUInt64(Nothing)
Case Else
Throw New InvalidCastException(String.Format("Conversion to {0} is not supported.", conversionType.Name))
End Select
End Function
Public Function ToUInt16(provider As IFormatProvider) As UInt16 _
Implements IConvertible.ToUInt16
If Me.m_Temp < UInt16.MinValue Or Me.m_Temp > UInt16.MaxValue Then
Throw New OverflowException(String.Format("{0} is out of range of the UInt16 type.", _
Me.m_Temp))
Else
Return Decimal.ToUInt16(Me.m_Temp)
End If
End Function
Public Function ToUInt32(provider As IFormatProvider) As UInt32 _
Implements IConvertible.ToUInt32
If Me.m_Temp < UInt32.MinValue Or Me.m_Temp > UInt32.MaxValue Then
Throw New OverflowException(String.Format("{0} is out of range of the UInt32 type.", _
Me.m_Temp))
Else
Return Decimal.ToUInt32(Me.m_Temp)
End If
End Function
Public Function ToUInt64(provider As IFormatProvider) As UInt64 _
Implements IConvertible.ToUInt64
If Me.m_Temp < UInt64.MinValue Or Me.m_Temp > UInt64.MaxValue Then
Throw New OverflowException(String.Format("{0} is out of range of the UInt64 type.", _
Me.m_Temp))
Else
Return Decimal.ToUInt64(Me.m_temp)
End If
End Function
End Class
次の例では、 Temperature
オブジェクトが パラメーターとして メソッドに ToDecimal(Object, IFormatProvider) 渡されると、 IConvertible.ToDecimal クラスの Temperature
実装が呼び出されて変換が実行されることを示しています。
public class Example
{
public static void Main()
{
Temperature cold = new Temperature(-40);
Temperature freezing = new Temperature(0);
Temperature boiling = new Temperature(100);
Console.WriteLine(Convert.ToDecimal(cold, null));
Console.WriteLine(Convert.ToDecimal(freezing, null));
Console.WriteLine(Convert.ToDecimal(boiling, null));
}
}
// The example dosplays the following output:
// -40
// 0
// 100
let cold = Temperature -40
let freezing = Temperature 0
let boiling = Temperature 100
printfn $"{Convert.ToDecimal(cold, null)}"
printfn $"{Convert.ToDecimal(freezing, null)}"
printfn $"{Convert.ToDecimal(boiling, null)}"
// The example dosplays the following output:
// -40
// 0
// 100
Module Example
Public Sub Main()
Dim cold As New Temperature(-40)
Dim freezing As New Temperature(0)
Dim boiling As New Temperature(100)
Console.WriteLine(Convert.ToDecimal(cold, Nothing))
Console.WriteLine(Convert.ToDecimal(freezing, Nothing))
Console.WriteLine(Convert.ToDecimal(boiling, Nothing))
End Sub
End Module
' The example displays the following output:
' -40
' 0
' 100
注釈
戻り値は、 の基になる型value
の メソッドを呼び出IConvertible.ToDecimalした結果です。
provider
を使用すると、ユーザーは の内容に関するカルチャ固有の value
変換情報を指定できます。 基本型は無視 provider
されます。ただし、 が インターフェイスを実装するユーザー定義型の場合 value
は、 パラメーターを IConvertible 使用できます。
こちらもご覧ください
適用対象
ToDecimal(SByte)
- ソース:
- Convert.cs
- ソース:
- Convert.cs
- ソース:
- Convert.cs
重要
この API は CLS 準拠ではありません。
指定した 8 ビット符号付き整数の値を等価の 10 進数に変換します。
public:
static System::Decimal ToDecimal(System::SByte value);
[System.CLSCompliant(false)]
public static decimal ToDecimal (sbyte value);
[<System.CLSCompliant(false)>]
static member ToDecimal : sbyte -> decimal
Public Shared Function ToDecimal (value As SByte) As Decimal
パラメーター
- value
- SByte
変換する 8 ビット符号付き整数。
戻り値
value
と等しい 10 進数。
- 属性
例
次の例では、符号付きバイトの配列内の各要素を値に Decimal 変換します。
sbyte[] numbers = { SByte.MinValue, -23, 0, 17, SByte.MaxValue };
decimal result;
foreach (sbyte number in numbers)
{
result = Convert.ToDecimal(number);
Console.WriteLine("Converted the SByte value {0} to {1}.", number, result);
}
// Converted the SByte value -128 to -128.
// Converted the SByte value -23 to -23.
// Converted the SByte value 0 to 0.
// Converted the SByte value 17 to 17.
// Converted the SByte value 127 to 127.
let numbers =
[| SByte.MinValue, -23, 0, 17, SByte.MaxValue |]
for number in numbers do
let result = Convert.ToDecimal number
printfn $"Converted the SByte value {number} to {result}."
// Converted the SByte value -128 to -128.
// Converted the SByte value -23 to -23.
// Converted the SByte value 0 to 0.
// Converted the SByte value 17 to 17.
// Converted the SByte value 127 to 127.
Dim numbers() As SByte = { SByte.MinValue, -23, 0, 17, SByte.MaxValue }
Dim result As Decimal
For Each number As SByte In numbers
result = Convert.ToDecimal(number)
Console.WriteLine("Converted the SByte value {0} to {1}.", number, result)
Next
' Converted the SByte value -128 to -128.
' Converted the SByte value -23 to -23.
' Converted the SByte value 0 to 0.
' Converted the SByte value 17 to 17.
' Converted the SByte value 127 to 127.
こちらもご覧ください
適用対象
ToDecimal(UInt32)
- ソース:
- Convert.cs
- ソース:
- Convert.cs
- ソース:
- Convert.cs
重要
この API は CLS 準拠ではありません。
指定した 32 ビット符号なし整数の値を等価の 10 進数に変換します。
public:
static System::Decimal ToDecimal(System::UInt32 value);
[System.CLSCompliant(false)]
public static decimal ToDecimal (uint value);
[<System.CLSCompliant(false)>]
static member ToDecimal : uint32 -> decimal
Public Shared Function ToDecimal (value As UInteger) As Decimal
パラメーター
- value
- UInt32
変換する 32 ビット符号なし整数。
戻り値
value
と等しい 10 進数。
- 属性
例
次の例では、符号なし整数の配列を値に Decimal 変換します。
uint[] numbers = { UInt32.MinValue, 121, 12345, UInt32.MaxValue };
decimal result;
foreach (uint number in numbers)
{
result = Convert.ToDecimal(number);
Console.WriteLine("Converted the UInt32 value {0} to {1}.",
number, result);
}
// The example displays the following output:
// Converted the UInt32 value 0 to 0.
// Converted the UInt32 value 121 to 121.
// Converted the UInt32 value 12345 to 12345.
// Converted the UInt32 value 4294967295 to 4294967295.
let numbers =
[| UInt32.MinValue; 121u; 12345u; UInt32.MaxValue |]
for number in numbers do
let result = Convert.ToDecimal number
printfn $"Converted the UInt32 value {number} to {result}."
// The example displays the following output:
// Converted the UInt32 value 0 to 0.
// Converted the UInt32 value 121 to 121.
// Converted the UInt32 value 12345 to 12345.
// Converted the UInt32 value 4294967295 to 4294967295.
Dim numbers() As UInteger = { UInt32.MinValue, 121, 12345, UInt32.MaxValue }
Dim result As Decimal
For Each number As UInteger In numbers
result = Convert.ToDecimal(number)
Console.WriteLine("Converted the UInt32 value {0} to {1}.", _
number, result)
Next
' The example displays the following output:
' Converted the UInt32 value 0 to 0.
' Converted the UInt32 value 121 to 121.
' Converted the UInt32 value 12345 to 12345.
' Converted the UInt32 value 4294967295 to 4294967295.
こちらもご覧ください
適用対象
ToDecimal(Object)
- ソース:
- Convert.cs
- ソース:
- Convert.cs
- ソース:
- Convert.cs
指定したオブジェクトの値を等価の 10 進数に変換します。
public:
static System::Decimal ToDecimal(System::Object ^ value);
public static decimal ToDecimal (object value);
public static decimal ToDecimal (object? value);
static member ToDecimal : obj -> decimal
Public Shared Function ToDecimal (value As Object) As Decimal
パラメーター
- value
- Object
IConvertible インターフェイスを実装するオブジェクトか、または null
。
戻り値
value
と等価の 10 進数。value
が null
の場合は 0 (ゼロ)。
例外
value
は Decimal 型の適切な形式ではありません。
value
は、 Decimal.MinValue より小さいか、 Decimal.MaxValue より大きい数値を表します。
例
次の例では、オブジェクト配列内の各要素を値に Decimal 変換しようとします。
object[] values = { true, 'a', 123, 1.764e32, "9.78", "1e-02",
1.67e03, "A100", "1,033.67", DateTime.Now,
Double.MaxValue };
decimal result;
foreach (object value in values)
{
try {
result = Convert.ToDecimal(value);
Console.WriteLine("Converted the {0} value {1} to {2}.",
value.GetType().Name, value, result);
}
catch (OverflowException) {
Console.WriteLine("The {0} value {1} is out of range of the Decimal type.",
value.GetType().Name, value);
}
catch (FormatException) {
Console.WriteLine("The {0} value {1} is not recognized as a valid Decimal value.",
value.GetType().Name, value);
}
catch (InvalidCastException) {
Console.WriteLine("Conversion of the {0} value {1} to a Decimal is not supported.",
value.GetType().Name, value);
}
}
// The example displays the following output:
// Converted the Boolean value True to 1.
// Conversion of the Char value a to a Decimal is not supported.
// Converted the Int32 value 123 to 123.
// The Double value 1.764E+32 is out of range of the Decimal type.
// Converted the String value 9.78 to 9.78.
// The String value 1e-02 is not recognized as a valid Decimal value.
// Converted the Double value 1670 to 1670.
// The String value A100 is not recognized as a valid Decimal value.
// Converted the String value 1,033.67 to 1033.67.
// Conversion of the DateTime value 10/15/2008 05:40:42 PM to a Decimal is not supported.
// The Double value 1.79769313486232E+308 is out of range of the Decimal type.
let values: obj[] =
[| true; 'a'; 123; 1.764e32; "9.78"; "1e-02"; 1.67e03
"A100"; "1,033.67"; DateTime.Now; Double.MaxValue |]
for value in values do
try
let result = Convert.ToDecimal value
printfn $"Converted the {value.GetType().Name} value {value} to {result}."
with
| :? OverflowException ->
printfn $"The {value.GetType().Name} value {value} is out of range of the Decimal type."
| :? FormatException ->
printfn $"The {value.GetType().Name} value {value} is not recognized as a valid Decimal value."
| :? InvalidCastException ->
printfn $"Conversion of the {value.GetType().Name} value {value} to a Decimal is not supported."
// The example displays the following output:
// Converted the Boolean value True to 1.
// Conversion of the Char value a to a Decimal is not supported.
// Converted the Int32 value 123 to 123.
// The Double value 1.764E+32 is out of range of the Decimal type.
// Converted the String value 9.78 to 9.78.
// The String value 1e-02 is not recognized as a valid Decimal value.
// Converted the Double value 1670 to 1670.
// The String value A100 is not recognized as a valid Decimal value.
// Converted the String value 1,033.67 to 1033.67.
// Conversion of the DateTime value 10/15/2008 05:40:42 PM to a Decimal is not supported.
// The Double value 1.79769313486232E+308 is out of range of the Decimal type.
Dim values() As Object = { True, "a"c, 123, 1.764e32, "9.78", "1e-02", _
1.67e03, "A100", "1,033.67", Date.Now, _
Double.MaxValue }
Dim result As Decimal
For Each value As Object In values
Try
result = Convert.ToDecimal(value)
Console.WriteLine("Converted the {0} value {1} to {2}.", _
value.GetType().Name, value, result)
Catch e As OverflowException
Console.WriteLine("The {0} value {1} is out of range of the Decimal type.", _
value.GetType().Name, value)
Catch e As FormatException
Console.WriteLine("The {0} value {1} is not recognized as a valid Decimal value.", _
value.GetType().Name, value)
Catch e As InvalidCastException
Console.WriteLine("Conversion of the {0} value {1} to a Decimal is not supported.", _
value.GetType().Name, value)
End Try
Next
' The example displays the following output:
' Converted the Boolean value True to 1.
' Conversion of the Char value a to a Decimal is not supported.
' Converted the Int32 value 123 to 123.
' The Double value 1.764E+32 is out of range of the Decimal type.
' Converted the String value 9.78 to 9.78.
' The String value 1e-02 is not recognized as a valid Decimal value.
' Converted the Double value 1670 to 1670.
' The String value A100 is not recognized as a valid Decimal value.
' Converted the String value 1,033.67 to 1033.67.
' Conversion of the DateTime value 10/15/2008 05:40:42 PM to a Decimal is not supported.
' The Double value 1.79769313486232E+308 is out of range of the Decimal type.
注釈
戻り値は、 の基になる型value
の IConvertible.ToDecimal メソッドを呼び出した結果です。
こちらもご覧ください
適用対象
ToDecimal(Int64)
- ソース:
- Convert.cs
- ソース:
- Convert.cs
- ソース:
- Convert.cs
指定した 64 ビット符号付き整数の値を等価の 10 進数に変換します。
public:
static System::Decimal ToDecimal(long value);
public static decimal ToDecimal (long value);
static member ToDecimal : int64 -> decimal
Public Shared Function ToDecimal (value As Long) As Decimal
パラメーター
- value
- Int64
変換する 64 ビット符号付き整数。
戻り値
value
と等しい 10 進数。
例
次の例では、値を Int64 値に Decimal 変換します。
public:
void ConvertLongDecimal( Int64 longVal )
{
Decimal decimalVal;
// Long to decimal conversion cannot overflow.
decimalVal = System::Convert::ToDecimal( longVal );
System::Console::WriteLine( " {0} as a decimal is {1}",
longVal, decimalVal );
// Decimal to long conversion can overflow.
try
{
longVal = System::Convert::ToInt64( decimalVal );
System::Console::WriteLine( " {0} as a long is {1}",
decimalVal, longVal );
}
catch ( System::OverflowException^ )
{
System::Console::WriteLine( "Overflow in decimal-to-long conversion." );
}
}
public void ConvertLongDecimal(long longVal) {
decimal decimalVal;
// Long to decimal conversion cannot overflow.
decimalVal = System.Convert.ToDecimal(longVal);
System.Console.WriteLine("{0} as a decimal is {1}",
longVal, decimalVal);
// Decimal to long conversion can overflow.
try {
longVal = System.Convert.ToInt64(decimalVal);
System.Console.WriteLine("{0} as a long is {1}",
decimalVal, longVal);
}
catch (System.OverflowException) {
System.Console.WriteLine(
"Overflow in decimal-to-long conversion.");
}
}
let convertLongDecimal (longVal: int64) =
// Long to decimal conversion cannot overflow.
let decimalVal = Convert.ToDecimal longVal
printfn $"{longVal} as a decimal is {decimalVal}"
// Decimal to long conversion can overflow.
try
let longVal = Convert.ToInt64 decimalVal
printfn $"{decimalVal} as a long is {longVal}"
with :? OverflowException ->
printfn "Overflow in decimal-to-long conversion."
Public Sub ConvertLongDecimal(ByVal longVal As Long)
Dim decimalVal As Decimal
'Long to Decimal conversion cannot overflow.
decimalVal = System.Convert.ToDecimal(longVal)
System.Console.WriteLine("{0} as a Decimal is {1}", _
longVal, decimalVal)
'Decimal to Long conversion can overflow.
Try
longVal = System.Convert.ToInt64(decimalVal)
System.Console.WriteLine("{0} as a Long is {1}", _
decimalVal, longVal)
Catch exception As System.OverflowException
System.Console.WriteLine( _
"Overflow in decimal-to-long conversion.")
End Try
End Sub
こちらもご覧ください
適用対象
ToDecimal(Int32)
- ソース:
- Convert.cs
- ソース:
- Convert.cs
- ソース:
- Convert.cs
指定した 32 ビット符号付き整数の値を等価の 10 進数に変換します。
public:
static System::Decimal ToDecimal(int value);
public static decimal ToDecimal (int value);
static member ToDecimal : int -> decimal
Public Shared Function ToDecimal (value As Integer) As Decimal
パラメーター
- value
- Int32
変換する 32 ビット符号付き整数。
戻り値
value
と等しい 10 進数。
例
次の例では、符号付き整数の配列を値に Decimal 変換します。
int[] numbers = { Int32.MinValue, -1000, 0, 1000, Int32.MaxValue };
decimal result;
foreach (int number in numbers)
{
result = Convert.ToDecimal(number);
Console.WriteLine("Converted the Int32 value {0} to the Decimal value {1}.",
number, result);
}
// The example displays the following output:
// Converted the Int32 value -2147483648 to the Decimal value -2147483648.
// Converted the Int32 value -1000 to the Decimal value -1000.
// Converted the Int32 value 0 to the Decimal value 0.
// Converted the Int32 value 1000 to the Decimal value 1000.
// Converted the Int32 value 2147483647 to the Decimal value 2147483647.
let numbers =
[| Int32.MinValue; -1000; 0; 1000; Int32.MaxValue |]
for number in numbers do
let result = Convert.ToDecimal number
printfn $"Converted the Int32 value {number} to the Decimal value {result}."
// The example displays the following output:
// Converted the Int32 value -2147483648 to the Decimal value -2147483648.
// Converted the Int32 value -1000 to the Decimal value -1000.
// Converted the Int32 value 0 to the Decimal value 0.
// Converted the Int32 value 1000 to the Decimal value 1000.
// Converted the Int32 value 2147483647 to the Decimal value 2147483647.
Dim numbers() As Integer = { Int32.MinValue, -1000, 0, 1000, Int32.MaxValue }
Dim result As Decimal
For Each number As Integer In numbers
result = Convert.ToDecimal(number)
Console.WriteLine("Converted the Int32 value {0} to the Decimal value {1}.", _
number, result)
Next
' The example displays the following output:
' Converted the Int32 value -2147483648 to the Decimal value -2147483648.
' Converted the Int32 value -1000 to the Decimal value -1000.
' Converted the Int32 value 0 to the Decimal value 0.
' Converted the Int32 value 1000 to the Decimal value 1000.
' Converted the Int32 value 2147483647 to the Decimal value 2147483647.
こちらもご覧ください
適用対象
ToDecimal(Int16)
- ソース:
- Convert.cs
- ソース:
- Convert.cs
- ソース:
- Convert.cs
指定した 16 ビット符号付き整数の値を等価の 10 進数に変換します。
public:
static System::Decimal ToDecimal(short value);
public static decimal ToDecimal (short value);
static member ToDecimal : int16 -> decimal
Public Shared Function ToDecimal (value As Short) As Decimal
パラメーター
- value
- Int16
変換する 16 ビット符号付き整数。
戻り値
value
と等しい 10 進数。
例
次の例では、16 ビット符号付き整数の配列を値に Decimal 変換します。
short[] numbers = { Int16.MinValue, -1000, 0, 1000, Int16.MaxValue };
decimal result;
foreach (short number in numbers)
{
result = Convert.ToDecimal(number);
Console.WriteLine("Converted the Int16 value {0} to the Decimal value {1}.",
number, result);
}
// The example displays the following output:
// Converted the Int16 value -32768 to the Decimal value -32768.
// Converted the Int16 value -1000 to the Decimal value -1000.
// Converted the Int16 value 0 to the Decimal value 0.
// Converted the Int16 value 1000 to the Decimal value 1000.
// Converted the Int16 value 32767 to the Decimal value 32767.
let numbers =
[| Int16.MinValue; -1000s; 0s; 1000s; Int16.MaxValue |]
for number in numbers do
let result = Convert.ToDecimal number
printfn $"Converted the Int16 value {number} to the Decimal value {result}."
// The example displays the following output:
// Converted the Int16 value -32768 to the Decimal value -32768.
// Converted the Int16 value -1000 to the Decimal value -1000.
// Converted the Int16 value 0 to the Decimal value 0.
// Converted the Int16 value 1000 to the Decimal value 1000.
// Converted the Int16 value 32767 to the Decimal value 32767.
Dim numbers() As Short = { Int16.MinValue, -1000, 0, 1000, Int16.MaxValue }
Dim result As Decimal
For Each number As Short In numbers
result = Convert.ToDecimal(number)
Console.WriteLine("Converted the Int16 value {0} to the Decimal value {1}.", _
number, result)
Next
' The example displays the following output:
' Converted the Int16 value -32768 to the Decimal value -32768.
' Converted the Int16 value -1000 to the Decimal value -1000.
' Converted the Int16 value 0 to the Decimal value 0.
' Converted the Int16 value 1000 to the Decimal value 1000.
' Converted the Int16 value 32767 to the Decimal value 32767.
こちらもご覧ください
適用対象
ToDecimal(Double)
- ソース:
- Convert.cs
- ソース:
- Convert.cs
- ソース:
- Convert.cs
指定した倍精度浮動小数点数値を等価の 10 進数に変換します。
public:
static System::Decimal ToDecimal(double value);
public static decimal ToDecimal (double value);
static member ToDecimal : double -> decimal
Public Shared Function ToDecimal (value As Double) As Decimal
パラメーター
- value
- Double
変換する倍精度浮動小数点数。
戻り値
value
と等しい 10 進数。
例外
value
が Decimal.MaxValue より大きいか、 Decimal.MinValue 未満です。
例
次の例では、値を Double 値に Decimal 変換します。
public:
void ConvertDoubleDecimal( double doubleVal )
{
Decimal decimalVal;
// Conversion from double to decimal cannot overflow.
decimalVal = System::Convert::ToDecimal( doubleVal );
System::Console::WriteLine( " {0} as a decimal is: {1}",
doubleVal, decimalVal );
// Decimal to double conversion can overflow.
try
{
doubleVal = System::Convert::ToDouble( decimalVal );
System::Console::WriteLine( " {0} as a double is: {1}",
decimalVal, doubleVal );
}
catch ( System::OverflowException^ )
{
System::Console::WriteLine( "Overflow in decimal-to-double conversion." );
}
}
public void ConvertDoubleDecimal(decimal decimalVal){
double doubleVal;
// Decimal to double conversion cannot overflow.
doubleVal = System.Convert.ToDouble(decimalVal);
System.Console.WriteLine("{0} as a double is: {1}",
decimalVal, doubleVal);
// Conversion from double to decimal can overflow.
try
{
decimalVal = System.Convert.ToDecimal(doubleVal);
System.Console.WriteLine ("{0} as a decimal is: {1}",
doubleVal, decimalVal);
}
catch (System.OverflowException) {
System.Console.WriteLine(
"Overflow in double-to-double conversion.");
}
}
let convertDoubleDecimal (decimalVal: float) =
// Decimal to double conversion cannot overflow.
let doubleVal =
Convert.ToDouble decimalVal
printfn $"{decimalVal} as a double is: {doubleVal}"
// Conversion from double to decimal can overflow.
try
let decimalVal = Convert.ToDecimal doubleVal
printfn $"{doubleVal} as a decimal is: {decimalVal}"
with :? OverflowException ->
printfn "Overflow in double-to-double conversion."
Public Sub ConvertDoubleDecimal(ByVal decimalVal As Decimal)
Dim doubleVal As Double
' Decimal to Double conversion cannot overflow.
doubleVal = System.Convert.ToDouble(decimalVal)
System.Console.WriteLine("{0} as a Double is: {1}", _
decimalVal, doubleVal)
' Conversion from Double to Decimal can overflow.
Try
decimalVal = System.Convert.ToDecimal(doubleVal)
System.Console.WriteLine("{0} as a Decimal is: {1}", _
doubleVal, decimalVal)
Catch exception As System.OverflowException
System.Console.WriteLine( _
"Overflow in Double-to-Decimal conversion.")
End Try
End Sub
注釈
Decimalこのメソッドによって返される値には、最大 15 桁の有効桁数が含まれています。 パラメーターに value
15 桁を超える有効桁数が含まれている場合は、最も近い値に丸めて丸められます。 次の例は、メソッドが Convert.ToDecimal(Double) 最も近い値への丸めを使用して、有効桁数が 15 桁の値を Decimal 返す方法を示しています。
Console.WriteLine(Convert.ToDecimal(123456789012345500.12D)); // Displays 123456789012346000
Console.WriteLine(Convert.ToDecimal(123456789012346500.12D)); // Displays 123456789012346000
Console.WriteLine(Convert.ToDecimal(10030.12345678905D)); // Displays 10030.123456789
Console.WriteLine(Convert.ToDecimal(10030.12345678915D)); // Displays 10030.1234567892
printfn $"{Convert.ToDecimal 123456789012345500.12}" // Displays 123456789012346000
printfn $"{Convert.ToDecimal 123456789012346500.12}" // Displays 123456789012346000
printfn $"{Convert.ToDecimal 10030.12345678905}" // Displays 10030.123456789
printfn $"{Convert.ToDecimal 10030.12345678915}" // Displays 10030.1234567892
Console.WriteLine(Convert.ToDecimal(123456789012345500.12R)) ' Displays 123456789012346000
Console.WriteLine(Convert.ToDecimal(123456789012346500.12R)) ' Displays 123456789012346000
Console.WriteLine(Convert.ToDecimal(10030.12345678905R)) ' Displays 10030.123456789
Console.WriteLine(Convert.ToDecimal(10030.12345678915R)) ' Displays 10030.1234567892
こちらもご覧ください
適用対象
ToDecimal(Decimal)
- ソース:
- Convert.cs
- ソース:
- Convert.cs
- ソース:
- Convert.cs
指定した 10 進数を返します。実際の変換は行われません。
public:
static System::Decimal ToDecimal(System::Decimal value);
public static decimal ToDecimal (decimal value);
static member ToDecimal : decimal -> decimal
Public Shared Function ToDecimal (value As Decimal) As Decimal
パラメーター
- value
- Decimal
10 進数。
戻り値
value
は変更されずに返されます。
適用対象
ToDecimal(DateTime)
- ソース:
- Convert.cs
- ソース:
- Convert.cs
- ソース:
- Convert.cs
このメソッドを呼び出すと、必ず InvalidCastException がスローされます。
public:
static System::Decimal ToDecimal(DateTime value);
public static decimal ToDecimal (DateTime value);
static member ToDecimal : DateTime -> decimal
Public Shared Function ToDecimal (value As DateTime) As Decimal
パラメーター
- value
- DateTime
変換する日時の値。
戻り値
この変換はサポートされていません。 値は返されません。
例外
この変換はサポートされていません。
適用対象
ToDecimal(Char)
- ソース:
- Convert.cs
- ソース:
- Convert.cs
- ソース:
- Convert.cs
このメソッドを呼び出すと、必ず InvalidCastException がスローされます。
public:
static System::Decimal ToDecimal(char value);
public static decimal ToDecimal (char value);
static member ToDecimal : char -> decimal
Public Shared Function ToDecimal (value As Char) As Decimal
パラメーター
- value
- Char
変換する Unicode 文字。
戻り値
この変換はサポートされていません。 値は返されません。
例外
この変換はサポートされていません。
例
次の例では、値を にDecimal変換Charしようとし、失敗した場合に をスローしますInvalidCastException。
public:
void ConvertCharDecimal( Char charVal )
{
Decimal decimalVal = 0;
// Char to decimal conversion is not supported and will always
// throw an InvalidCastException.
try
{
decimalVal = System::Convert::ToDecimal( charVal );
}
catch ( System::InvalidCastException^ )
{
System::Console::WriteLine(
"Char-to-Decimal conversion is not supported by the .NET Framework." );
}
//Decimal to char conversion is also not supported.
try
{
charVal = System::Convert::ToChar( decimalVal );
}
catch ( System::InvalidCastException^ )
{
System::Console::WriteLine(
"Decimal-to-Char conversion is not supported by the .NET Framework." );
}
}
public void ConvertCharDecimal(char charVal) {
Decimal decimalVal = 0;
// Char to decimal conversion is not supported and will always
// throw an InvalidCastException.
try {
decimalVal = System.Convert.ToDecimal(charVal);
}
catch (System.InvalidCastException) {
System.Console.WriteLine(
"Char-to-Decimal conversion is not supported " +
"by the .NET Framework.");
}
//Decimal to char conversion is also not supported.
try {
charVal = System.Convert.ToChar(decimalVal);
}
catch (System.InvalidCastException) {
System.Console.WriteLine(
"Decimal-to-Char conversion is not supported " +
"by the .NET Framework.");
}
}
let convertCharDecimal (charVal: char) =
let decimalVal = 0m
// Char to decimal conversion is not supported and will always
// throw an InvalidCastException.
try
let decimalVal = Convert.ToDecimal charVal
()
with :? InvalidCastException ->
printfn "Char-to-Decimal conversion is not supported by the .NET Runtime."
//Decimal to char conversion is also not supported.
try
let charVal = Convert.ToChar decimalVal
()
with :? InvalidCastException ->
printfn "Decimal-to-Char conversion is not supported by the .NET Runtime."
Public Sub ConvertCharDecimal(ByVal charVal As Char)
Dim decimalVal As [Decimal] = 0
' Char to decimal conversion is not supported and will always
' throw an InvalidCastException.
Try
decimalVal = System.Convert.ToDecimal(charVal)
Catch exception As System.InvalidCastException
System.Console.WriteLine( _
"Char-to-Decimal conversion is not supported " + _
"by the .NET Framework.")
End Try
'Decimal to char conversion is also not supported.
Try
charVal = System.Convert.ToChar(decimalVal)
Catch exception As System.InvalidCastException
System.Console.WriteLine( _
"Decimal-to-Char conversion is not supported " + _
"by the .NET Framework.")
End Try
End Sub
こちらもご覧ください
適用対象
ToDecimal(Byte)
- ソース:
- Convert.cs
- ソース:
- Convert.cs
- ソース:
- Convert.cs
指定した 8 ビット符号なし整数の値を等価の 10 進数に変換します。
public:
static System::Decimal ToDecimal(System::Byte value);
public static decimal ToDecimal (byte value);
static member ToDecimal : byte -> decimal
Public Shared Function ToDecimal (value As Byte) As Decimal
パラメーター
- value
- Byte
変換する 8 ビット符号なし整数。
戻り値
value
と等価の 10 進数。
例
次の例では、値を Byte 値に Decimal 変換します。
public:
void ConvertByteDecimal( Byte byteVal )
{
Decimal decimalVal;
// Byte to decimal conversion will not overflow.
decimalVal = System::Convert::ToDecimal( byteVal );
System::Console::WriteLine( "The Byte as a decimal is {0}.",
decimalVal );
// Decimal to Byte conversion can overflow.
try
{
byteVal = System::Convert::ToByte( decimalVal );
System::Console::WriteLine( "The Decimal as a Byte is {0}.",
byteVal );
}
catch ( System::OverflowException^ )
{
System::Console::WriteLine(
"The decimal value is too large for a Byte." );
}
}
public void ConvertByteDecimal(byte byteVal) {
decimal decimalVal;
// Byte to decimal conversion will not overflow.
decimalVal = System.Convert.ToDecimal(byteVal);
System.Console.WriteLine("The byte as a decimal is {0}.",
decimalVal);
// Decimal to byte conversion can overflow.
try {
byteVal = System.Convert.ToByte(decimalVal);
System.Console.WriteLine("The Decimal as a byte is {0}.",
byteVal);
}
catch (System.OverflowException) {
System.Console.WriteLine(
"The decimal value is too large for a byte.");
}
}
let convertByteDecimal (byteVal: byte) =
// Byte to decimal conversion will not overflow.
let decimalVal = Convert.ToDecimal byteVal
printfn $"The byte as a decimal is {decimalVal}."
// Decimal to byte conversion can overflow.
try
let byteVal = Convert.ToByte decimalVal
printfn $"The Decimal as a byte is {byteVal}."
with :? OverflowException ->
printfn "The decimal value is too large for a byte."
Public Sub ConvertByteDecimal(ByVal byteVal As Byte)
Dim decimalVal As Decimal
' Byte to decimal conversion will not overflow.
decimalVal = System.Convert.ToDecimal(byteVal)
System.Console.WriteLine("The byte as a decimal is {0}.", _
decimalVal)
' Decimal to byte conversion can overflow.
Try
byteVal = System.Convert.ToByte(decimalVal)
System.Console.WriteLine("The Decimal as a byte is {0}.", _
byteVal)
Catch exception As System.OverflowException
System.Console.WriteLine( _
"Overflow in decimal-to-byte conversion.")
End Try
End Sub
こちらもご覧ください
適用対象
ToDecimal(Boolean)
- ソース:
- Convert.cs
- ソース:
- Convert.cs
- ソース:
- Convert.cs
指定したブール値を等価の 10 進数に変換します。
public:
static System::Decimal ToDecimal(bool value);
public static decimal ToDecimal (bool value);
static member ToDecimal : bool -> decimal
Public Shared Function ToDecimal (value As Boolean) As Decimal
パラメーター
- value
- Boolean
変換するブール値。
戻り値
value
が true
の場合は数値の 1。それ以外の場合は 0。
例
次の例は、 から 値への変換 Boolean を Decimal 示しています。
bool[] flags = { true, false };
decimal result;
foreach (bool flag in flags)
{
result = Convert.ToDecimal(flag);
Console.WriteLine("Converted {0} to {1}.", flag, result);
}
// The example displays the following output:
// Converted True to 1.
// Converted False to 0.
let flags = [ true; false ]
for flag in flags do
let result = Convert.ToDecimal flag
printfn $"Converted {flag} to {result}."
// The example displays the following output:
// Converted True to 1.
// Converted False to 0.
Dim flags() As Boolean = { True, False }
Dim result As Decimal
For Each flag As Boolean In flags
result = Convert.ToDecimal(flag)
Console.WriteLine("Converted {0} to {1}.", flag, result)
Next
' The example displays the following output:
' Converted True to 1.
' Converted False to 0.
こちらもご覧ください
適用対象
.NET