Skip to content

Commit cca266e

Browse files
authored
Add CultureInfo.InvariantCulture to floating point number formatting (#1541)
* Add CultureInfo.InvariantCulture to floating point number formatting * Remove unused using statement in KubernetesYamlTests.cs
1 parent 6bdc210 commit cca266e

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

src/KubernetesClient/FloatEmitter.cs

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using System.Globalization;
12
using YamlDotNet.Core;
23
using YamlDotNet.Core.Events;
34
using YamlDotNet.Serialization;
@@ -18,10 +19,10 @@ public override void Emit(ScalarEventInfo eventInfo, IEmitter emitter)
1819
{
1920
// Floating point numbers should always render at least one zero (e.g. 1.0f => '1.0' not '1')
2021
case double d:
21-
emitter.Emit(new Scalar(d.ToString("0.0######################")));
22+
emitter.Emit(new Scalar(d.ToString("0.0######################", CultureInfo.InvariantCulture)));
2223
break;
2324
case float f:
24-
emitter.Emit(new Scalar(f.ToString("0.0######################")));
25+
emitter.Emit(new Scalar(f.ToString("0.0######################", CultureInfo.InvariantCulture)));
2526
break;
2627
default:
2728
base.Emit(eventInfo, emitter);

tests/KubernetesClient.Tests/KubernetesYamlTests.cs

+17
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using k8s.Models;
22
using System;
33
using System.Collections.Generic;
4+
using System.Globalization;
45
using System.IO;
56
using System.Text;
67
using System.Threading.Tasks;
@@ -1095,5 +1096,21 @@ public void LoadFromStringCRDMerge()
10951096
Assert.Equal("v1beta2", crd.Spec.Versions[0].Name);
10961097
Assert.Equal("v1", crd.Spec.Versions[1].Name);
10971098
}
1099+
1100+
[Fact]
1101+
public void NoGlobalization()
1102+
{
1103+
var old = CultureInfo.CurrentCulture;
1104+
try
1105+
{
1106+
CultureInfo.CurrentCulture = CultureInfo.CreateSpecificCulture("fr-fr");
1107+
var yaml = KubernetesYaml.Serialize(new Dictionary<string, double>() { ["hello"] = 10.01 });
1108+
Assert.Equal("hello: 10.01", yaml);
1109+
}
1110+
finally
1111+
{
1112+
CultureInfo.CurrentCulture = old;
1113+
}
1114+
}
10981115
}
10991116
}

0 commit comments

Comments
 (0)