vb System.Convert.ToDecimal类(方法)实例源码

下面列出了vb System.Convert.ToDecimal 类(方法)源码代码实例,从而了解它的用法。

作者:VB.NET开发    项目:Syste   
' 导入命名空间
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

作者:VB.NET开发    项目:Syste   
' 导入命名空间
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

作者:VB.NET开发    项目:Syste   
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

作者:VB.NET开发    项目:Syste   
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

作者:VB.NET开发    项目:Syste   
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

作者:VB.NET开发    项目:Syste   
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

作者:VB.NET开发    项目:Syste   
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

作者:VB.NET开发    项目:Syste   
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.

作者:VB.NET开发    项目:Syste   
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

作者:VB.NET开发    项目:Syste   
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

作者:VB.NET开发    项目:Syste   
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

作者:VB.NET开发    项目:Syste   
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

作者:VB.NET开发    项目:Syste   
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

作者:VB.NET开发    项目:Syste   
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

作者:VB.NET开发    项目:Syste   
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

作者:VB.NET开发    项目:Syste   
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

作者:VB.NET开发    项目:Syste   
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

作者:VB.NET开发    项目:Syste   
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

作者:VB.NET开发    项目:Syste   
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


问题


面经


文章

微信
公众号

扫码关注公众号