diff --git a/osu.Game.Tests/Extensions/NumberFormattingExtensionsTest.cs b/osu.Game.Tests/Extensions/NumberFormattingExtensionsTest.cs index f60c978788..49655cc1c5 100644 --- a/osu.Game.Tests/Extensions/NumberFormattingExtensionsTest.cs +++ b/osu.Game.Tests/Extensions/NumberFormattingExtensionsTest.cs @@ -51,7 +51,15 @@ namespace osu.Game.Tests.Extensions [TestCase(0.4, true, 2, ExpectedResult = "40%")] [TestCase(1e-6, false, 6, ExpectedResult = "0,000001")] [TestCase(0.48333, true, 4, ExpectedResult = "48,33%")] - public string TestCultureSensitivity(double input, bool percent, int decimalDigits) + public string TestCultureSensitivityDecimalPoint(double input, bool percent, int decimalDigits) + { + return input.ToStandardFormattedString(decimalDigits, percent); + } + + [Test] + [SetCulture("sv-SE")] + [TestCase(-1e-6, false, 6, ExpectedResult = "−0,000001")] + public string TestCultureSensitivityNegativeSign(double input, bool percent, int decimalDigits) { return input.ToStandardFormattedString(decimalDigits, percent); } diff --git a/osu.Game/Extensions/NumberFormattingExtensions.cs b/osu.Game/Extensions/NumberFormattingExtensions.cs index 0c73590808..49f4503362 100644 --- a/osu.Game/Extensions/NumberFormattingExtensions.cs +++ b/osu.Game/Extensions/NumberFormattingExtensions.cs @@ -37,7 +37,7 @@ namespace osu.Game.Extensions return floatValue.ToString($@"0.{new string('0', Math.Max(0, significantDigits - 2))}%", CultureInfo.CurrentCulture); } - string negativeSign = Math.Round(floatValue, significantDigits) < 0 ? "-" : string.Empty; + string negativeSign = Math.Round(floatValue, significantDigits) < 0 ? CultureInfo.CurrentCulture.NumberFormat.NegativeSign : string.Empty; return $"{negativeSign}{Math.Abs(floatValue).ToString($"N{significantDigits}", CultureInfo.CurrentCulture)}"; }