1
+ open System
2
+ open System.Globalization
3
+
4
+ let callDefaultToString () =
5
+
6
+ // <Snippet1>
7
+ let value = - 16325091 L
8
+ // Display value using default ToString method.
9
+ printfn $" {value.ToString()}" // Displays -16325091
10
+ // Display value using some standard format specifiers.
11
+ printfn $""" {value.ToString "G"}""" // Displays -16325091
12
+ printfn $""" {value.ToString "C"}""" // Displays ($16,325,091.00)
13
+ printfn $""" {value.ToString "D"}""" // Displays -16325091
14
+ printfn $""" {value.ToString "F"}""" // Displays -16325091.00
15
+ printfn $""" {value.ToString "N"}""" // Displays -16,325,091.00
16
+ printfn $""" {value.ToString "N0"}""" // Displays -16,325,091
17
+ printfn $""" {value.ToString "X"}""" // Displays FFFFFFFFFF06E61D
18
+ // </Snippet1>
19
+
20
+ let callToStringWithSpecificCultures () =
21
+ // <Snippet2>
22
+ let value = - 16325901 L
23
+ // Display value using the invariant culture.
24
+ printfn $" {value.ToString CultureInfo.InvariantCulture}"
25
+ // Display value using the en-GB culture.
26
+ printfn $""" {value.ToString(CultureInfo.CreateSpecificCulture "en-GB" )}"""
27
+ // Display value using the de-DE culture.
28
+ printfn $""" {value.ToString(CultureInfo.CreateSpecificCulture "de-DE" )}"""
29
+ // This example displays the following output to the console:
30
+ // -16325901
31
+ // -16325901
32
+ // -16325901
33
+ // </Snippet2>
34
+
35
+
36
+ let callToStringWithSpecificSpecifiers () =
37
+ // <Snippet3>
38
+ let value = - 16325 L
39
+
40
+ // Use standard numeric format specifier.
41
+ let specifier = " G"
42
+ printfn $" {specifier}: {value.ToString specifier}"
43
+ // Displays: G: -16325
44
+
45
+ let specifier = " C"
46
+ printfn $" {specifier}: {value.ToString specifier}"
47
+ // Displays: C: ($16,325.00)
48
+
49
+ let specifier = " D8"
50
+ printfn $" {specifier}: {value.ToString specifier}"
51
+ // Displays: D8: -00016325
52
+
53
+ let specifier = " E4"
54
+ printfn $" {specifier}: {value.ToString specifier}"
55
+ // Displays: E4: -1.6325E+004
56
+
57
+ let specifier = " e3"
58
+ printfn $" {specifier}: {value.ToString specifier}"
59
+ // Displays: e3: -1.633e+004
60
+
61
+ let specifier = " F"
62
+ printfn $" {specifier}: {value.ToString specifier}"
63
+ // Displays: F: -16325.00
64
+
65
+ let specifier = " N"
66
+ printfn $" {specifier}: {value.ToString specifier }"
67
+ // Displays: N: -16,325.00
68
+
69
+ let specifier = " P"
70
+ printfn $" {specifier}: {(float value / 100000.0).ToString specifier}"
71
+ // Displays: P: -16.33 %
72
+
73
+ let specifier = " X"
74
+ printfn $" {specifier}: {value.ToString(specifier)}"
75
+ // Displays: X: FFFFFFFFFFFFC03B
76
+
77
+ // Use custom numeric format specifiers.
78
+ let specifier = " 0,0.000"
79
+ printfn $" {specifier}: {value.ToString(specifier)}"
80
+ // Displays: 0,0.000: -16,325.000
81
+
82
+ let specifier = " #,#.00#(#,#.00#)"
83
+ printfn $" {specifier}: {(value * -1L).ToString specifier}"
84
+ // Displays: #,#.00#(#,#.00#): 16,325.00
85
+
86
+ // </Snippet3>
87
+
88
+ let callToStringWithSpecifiersAndCultures () =
89
+ // <Snippet4>
90
+ // Define cultures whose formatting conventions are to be used.
91
+ let cultures =
92
+ [| CultureInfo.CreateSpecificCulture " en-US"
93
+ CultureInfo.CreateSpecificCulture " fr-FR"
94
+ CultureInfo.CreateSpecificCulture " es-ES" |]
95
+
96
+ let positiveNumber = 1679 L
97
+ let negativeNumber = - 3045 L
98
+ let specifiers = [| " G" ; " C" ; " D8" ; " E2" ; " F" ; " N" ; " N0" ; " P" ; " X8" |]
99
+
100
+ for specifier in specifiers do
101
+ for culture in cultures do
102
+ // Display values with "G" format specifier.
103
+ printfn $" {specifier} format using {culture.Name} culture: {positiveNumber.ToString(specifier, culture), 16} {negativeNumber.ToString(specifier, culture), 16}"
104
+ printfn " "
105
+
106
+ // The example displays the following output to the console:
107
+ // G format using en-US culture: 1679 -3045
108
+ // G format using fr-FR culture: 1679 -3045
109
+ // G format using es-ES culture: 1679 -3045
110
+ //
111
+ // C format using en-US culture: $1,679.00 ($3,045.00)
112
+ // C format using fr-FR culture: 1 679,00 € -3 045,00 €
113
+ // C format using es-ES culture: 1.679,00 € -3.045,00 €
114
+ //
115
+ // D8 format using en-US culture: 00001679 -00003045
116
+ // D8 format using fr-FR culture: 00001679 -00003045
117
+ // D8 format using es-ES culture: 00001679 -00003045
118
+ //
119
+ // E2 format using en-US culture: 1.68E+003 -3.05E+003
120
+ // E2 format using fr-FR culture: 1,68E+003 -3,05E+003
121
+ // E2 format using es-ES culture: 1,68E+003 -3,05E+003
122
+ //
123
+ // F format using en-US culture: 1679.00 -3045.00
124
+ // F format using fr-FR culture: 1679,00 -3045,00
125
+ // F format using es-ES culture: 1679,00 -3045,00
126
+ //
127
+ // N format using en-US culture: 1,679.00 -3,045.00
128
+ // N format using fr-FR culture: 1 679,00 -3 045,00
129
+ // N format using es-ES culture: 1.679,00 -3.045,00
130
+ //
131
+ // N0 format using en-US culture: 1,679 -3,045
132
+ // N0 format using fr-FR culture: 1 679 -3 045
133
+ // N0 format using es-ES culture: 1.679 -3.045
134
+ //
135
+ // P format using en-US culture: 167,900.00% -304,500.00%
136
+ // P format using fr-FR culture: 167 900,00 % -304 500,00 %
137
+ // P format using es-ES culture: 167.900,00 % -304.500,00 %
138
+ //
139
+ // X8 format using en-US culture: 0000068F FFFFFFFFFFFFF41B
140
+ // X8 format using fr-FR culture: 0000068F FFFFFFFFFFFFF41B
141
+ // X8 format using es-ES culture: 0000068F FFFFFFFFFFFFF41B
142
+ // </Snippet4>
143
+
144
+ callDefaultToString ()
145
+ printfn " "
146
+ callToStringWithSpecificCultures ()
147
+ printfn " "
148
+ callToStringWithSpecificSpecifiers ()
149
+ printfn " "
150
+ callToStringWithSpecifiersAndCultures ()
0 commit comments