Add CultureInfo.InvariantCulture to floating point number formatting (#1541)

* Add CultureInfo.InvariantCulture to floating point number formatting

* Remove unused using statement in KubernetesYamlTests.cs
This commit is contained in:
Boshi Lian
2024-03-27 15:30:26 -07:00
committed by GitHub
parent 6bdc210793
commit cca266e6ae
2 changed files with 20 additions and 2 deletions

View File

@@ -1,3 +1,4 @@
using System.Globalization;
using YamlDotNet.Core;
using YamlDotNet.Core.Events;
using YamlDotNet.Serialization;
@@ -18,10 +19,10 @@ namespace k8s
{
// Floating point numbers should always render at least one zero (e.g. 1.0f => '1.0' not '1')
case double d:
emitter.Emit(new Scalar(d.ToString("0.0######################")));
emitter.Emit(new Scalar(d.ToString("0.0######################", CultureInfo.InvariantCulture)));
break;
case float f:
emitter.Emit(new Scalar(f.ToString("0.0######################")));
emitter.Emit(new Scalar(f.ToString("0.0######################", CultureInfo.InvariantCulture)));
break;
default:
base.Emit(eventInfo, emitter);

View File

@@ -1,6 +1,7 @@
using k8s.Models;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Text;
using System.Threading.Tasks;
@@ -1095,5 +1096,21 @@ spec:
Assert.Equal("v1beta2", crd.Spec.Versions[0].Name);
Assert.Equal("v1", crd.Spec.Versions[1].Name);
}
[Fact]
public void NoGlobalization()
{
var old = CultureInfo.CurrentCulture;
try
{
CultureInfo.CurrentCulture = CultureInfo.CreateSpecificCulture("fr-fr");
var yaml = KubernetesYaml.Serialize(new Dictionary<string, double>() { ["hello"] = 10.01 });
Assert.Equal("hello: 10.01", yaml);
}
finally
{
CultureInfo.CurrentCulture = old;
}
}
}
}