Skip to content

Commit fbd89e7

Browse files
authored
Fix deserializing decimal quantities regardless of local culture (#911)
Fixes parsing JSON for decimal quantities like Power on machines with cultures like Norwegian, where a comma is decimal separator is used. Related to #847, #868
1 parent 6bd8b26 commit fbd89e7

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

UnitsNet.Serialization.JsonNet.Tests/UnitsNetBaseJsonConverterTest.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ private class TestConverter : UnitsNetBaseJsonConverter<string>
239239
var result = ConvertIQuantity(value);
240240
if (result is ExtendedValueUnit {ValueType: "decimal"} decimalResult)
241241
{
242-
return (result.Unit, decimal.Parse(decimalResult.ValueString));
242+
return (result.Unit, decimal.Parse(decimalResult.ValueString, CultureInfo.InvariantCulture));
243243
}
244244

245245
throw new ArgumentException("The quantity does not have a decimal value", nameof(value));
@@ -274,7 +274,7 @@ public IQuantity Test_ConvertDecimalValueUnit(string unit, decimal value) => Tes
274274

275275
if (result is ExtendedValueUnit {ValueType: "decimal"} decimalResult)
276276
{
277-
return (result.Unit, decimal.Parse(decimalResult.ValueString));
277+
return (result.Unit, decimal.Parse(decimalResult.ValueString, CultureInfo.InvariantCulture));
278278
}
279279

280280
return null;

UnitsNet.Serialization.JsonNet/UnitsNetBaseJsonConverter.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ protected IQuantity ConvertValueUnit(ValueUnit valueUnit)
8282

8383
return valueUnit switch
8484
{
85-
ExtendedValueUnit {ValueType: "decimal"} extendedValueUnit => Quantity.From(decimal.Parse(extendedValueUnit.ValueString), unit),
85+
ExtendedValueUnit {ValueType: "decimal"} extendedValueUnit => Quantity.From(decimal.Parse(extendedValueUnit.ValueString, CultureInfo.InvariantCulture), unit),
8686
_ => Quantity.From(valueUnit.Value, unit)
8787
};
8888
}

0 commit comments

Comments
 (0)