@@ -74,6 +74,22 @@ public void Test_Deserialize()
74
74
Assert . AreEqual ( "0.0" , d . ToString ( ) ) ;
75
75
}
76
76
77
+ [ Test ]
78
+ public void Test_Deserialize_Negative ( )
79
+ {
80
+ decimal d = JsonConvert . DeserializeObject < decimal > ( "-0.0" ) ;
81
+
82
+ Assert . AreEqual ( "0.0" , d . ToString ( ) ) ;
83
+ }
84
+
85
+ [ Test ]
86
+ public void Test_Deserialize_NegativeNoTrailingZero ( )
87
+ {
88
+ decimal d = JsonConvert . DeserializeObject < decimal > ( "-0" ) ;
89
+
90
+ Assert . AreEqual ( "0" , d . ToString ( ) ) ;
91
+ }
92
+
77
93
[ Test ]
78
94
public void Test_Deserialize_MultipleTrailingZeroes ( )
79
95
{
@@ -100,18 +116,18 @@ public void ParseJsonDecimal()
100
116
FloatParseHandling = FloatParseHandling . Decimal
101
117
} ;
102
118
103
- decimal ? parsedDecimal = null ;
119
+ decimal ? parsedValue = null ;
104
120
105
121
while ( reader . Read ( ) )
106
122
{
107
123
if ( reader . TokenType == JsonToken . Float )
108
124
{
109
- parsedDecimal = ( decimal ) reader . Value ;
125
+ parsedValue = ( decimal ) reader . Value ;
110
126
break ;
111
127
}
112
128
}
113
129
114
- Assert . AreEqual ( "0.0" , parsedDecimal . ToString ( ) ) ;
130
+ Assert . AreEqual ( "0.0" , parsedValue . ToString ( ) ) ;
115
131
}
116
132
117
133
[ Test ]
@@ -144,7 +160,42 @@ public void ParseJsonDecimal_IsBoxedInstanceSame()
144
160
#else
145
161
Assert . IsFalse ( object . ReferenceEquals ( boxedDecimals [ 0 ] , boxedDecimals [ 1 ] ) ) ;
146
162
#endif
163
+ }
147
164
165
+ [ Test ]
166
+ public void Test_Deserialize_Double_Negative ( )
167
+ {
168
+ double d = JsonConvert . DeserializeObject < double > ( "-0.0" ) ;
169
+
170
+ #if NETCOREAPP3_1_OR_GREATER
171
+ Assert . AreEqual ( "-0" , d . ToString ( ) ) ;
172
+ #else
173
+ Assert . AreEqual ( "0" , d . ToString ( ) ) ;
174
+ #endif
175
+ }
176
+
177
+ [ Test ]
178
+ public void Test_Deserialize_Double_NegativeNoTrailingZero ( )
179
+ {
180
+ double d = JsonConvert . DeserializeObject < double > ( "-0" ) ;
181
+
182
+ #if NETCOREAPP3_1_OR_GREATER
183
+ Assert . AreEqual ( "-0" , d . ToString ( ) ) ;
184
+ #else
185
+ Assert . AreEqual ( "0" , d . ToString ( ) ) ;
186
+ #endif
187
+ }
188
+
189
+ [ Test ]
190
+ public void JValueDouble_ToString ( )
191
+ {
192
+ var d = new JValue ( - 0.0d ) ;
193
+
194
+ #if NETCOREAPP3_1_OR_GREATER
195
+ Assert . AreEqual ( "-0" , d . ToString ( ) ) ;
196
+ #else
197
+ Assert . AreEqual ( "0" , d . ToString ( ) ) ;
198
+ #endif
148
199
}
149
200
}
150
201
}
0 commit comments