Custom format with ToString : Numeric Format « Data Types « VB.Net






Custom format with ToString

 

Public Class Temperature
   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 Me.ToString("C")
   End Function

   Public Overloads Function ToString(format As String) As String  
      If String.IsNullOrEmpty(format) Then format = "C"
      format = format.Trim().ToUpperInvariant()      
      Select Case format
         Case "F"
            Return Me.Fahrenheit.ToString("N2") & " F"
         Case "K"
            Return Me.Kelvin.ToString("N2") & " K"
         Case "C"
            Return Me.Celsius.ToString("N2") & " C"
         Case Else
            Throw New FormatException(String.Format("The '{0}' format string is not supported.", format))
      End Select      
   End Function
End Class

Public Module Example
   Public Sub Main()
      Dim temp1 As New Temperature(0d)
      Console.WriteLine(temp1.ToString())
      Console.WriteLine(temp1.ToString("C"))
      Console.WriteLine(temp1.ToString("F"))
      Console.WriteLine(temp1.ToString("K"))
      Dim temp2 As New Temperature(-40d)
      Console.WriteLine(temp2.ToString())
      Console.WriteLine(temp2.ToString("C"))
      Console.WriteLine(temp2.ToString("F"))
      Console.WriteLine(temp2.ToString("K"))
      Dim temp3 As New Temperature(16d)
      Console.WriteLine(temp3.ToString())
      Console.WriteLine(temp3.ToString("C"))
      Console.WriteLine(temp3.ToString("F"))
      Console.WriteLine(temp3.ToString("K"))

      Console.WriteLine(String.Format("The temperature is now {0:F}.", temp3))
   End Sub
End Module

   
  








Related examples in the same category

1.Standard Numeric Format Strings: C2
2.Standard Numeric Format Strings: C, C3
3.Standard Numeric Format Strings: D
4.Standard Numeric Format Strings for negative value: D
5.Standard Numeric Format Strings: E,e
6.Standard Numeric Format Strings: F
7.Standard Numeric Format Strings: G
8.Standard Numeric Format Strings: N
9.Standard Numeric Format Strings: N
10.Standard Numeric Format Strings: P
11.Standard Numeric Format Strings: r
12.Standard Numeric Format Strings: X, x
13.Custom double value format: 00000
14.Custom double value format: 0.00
15.Custom double value format: 00.00
16.Custome double value format: 00.00 and CultureInfo.CreateSpecificCulture("da-DK")
17.Double value format: 0.0
18.Double value format: #,#
19.Double value format: #,# and CultureInfo.CreateSpecificCulture("el-GR")
20.Custome number format: ToString("#.##", CultureInfo.InvariantCulture)
21.Double value format: ToString("[##-##-##]")
22.Double value format: ToString("#")
23.Double value format: (###) ###-####
24.Number format: #,#
25.Number format: #,##0,,
26.Number format: #,,
27.Number format: #,,,
28.Number format: #,##0,,
29.Double number format: "#0.##%"
30.Format with custom character
31.Double value format: 0.###E+0
32.Double value format: 0.###E+000
33.Double value format: 0.###E-000
34.Format escape: \#
35.Format escape: \\(back slash)
36.Positive double value format: ##;(##)
37.Negative double value format: ##;(##)
38.Double value format: ##;(##);**Zero**
39.Double value format: (###) ###-####
40.Integer format: #
41.Number format: 0.0 vs #,#
42.Number format: ###-####
43.Number format: 0 and #
44.Number format: 0, # and ,
45.Number format: #,,,
46.Number format: #0.##%
47.Number format: CultureInfo.InvariantCulture
48.Number format: E
49.Number format: escape
50.Number format: free text
51.Number format: phone number format
52.Add free text to number format
53.Double.ToString Method and Number format
54.Number format and Culture info:G
55.Number format and Culture info: C
56.Number format and Culture info:E04
57.Number format and Culture info:F
58.Number format and Culture info:N
59.Number format and Culture info:P
60.Converts string in style and culture-specific format to double
61.Integer format: X
62.Format Enum: "G", "F", "D", "X"
63.Byte value format: X4
64.Date format: D
65.Format Date value: %M
66.Date value format: MMMM dd, yyyy (dddd)
67.Decimal format: C3
68.Implements IFormatProvider, ICustomFormatter